package store_test

import (
	"log"
	"testing"

	dto "github.com/prometheus/client_model/go"
	"github.com/tidbcloud/serverless-metering/pkg/config"
	"github.com/tidbcloud/serverless-metering/pkg/store"
)

func BenchmarkLocalParquetLog(b *testing.B) {
	config.InitMockConfig()
	logger, err := store.NewLocalParquetLogger()
	if err != nil {
		log.Fatal(err)
	}

	for i := 0; i < b.N; i++ {
		err = logger.Log(map[string]string{}, map[string]*dto.MetricFamily{
			"test": {
				Name: ptr("tikv_worker_load_data_wru_cost_counter"),
				Type: ptr(dto.MetricType_COUNTER),
				Metric: []*dto.Metric{
					{
						Counter: &dto.Counter{
							Value: ptr(float64(100)),
						},
					},
				},
			},
		})
		if err != nil {
			log.Fatal(err)
		}
	}
}

func ptr[T any](elem T) *T {
	return &elem
}
