...
1 package convert
2
3 import (
4 "testing"
5
6 "github.com/go-kit/kit/metrics/generic"
7 "github.com/go-kit/kit/metrics/teststat"
8 )
9
10 func TestCounterHistogramConversion(t *testing.T) {
11 name := "my_counter"
12 c := generic.NewCounter(name)
13 h := NewCounterAsHistogram(c)
14 top := NewHistogramAsCounter(h).With("label", "counter").(histogramCounter)
15 mid := top.h.(counterHistogram)
16 low := mid.c.(*generic.Counter)
17 if want, have := name, low.Name; want != have {
18 t.Errorf("Name: want %q, have %q", want, have)
19 }
20 if err := teststat.TestCounter(top, low.Value); err != nil {
21 t.Fatal(err)
22 }
23 }
24
25 func TestCounterGaugeConversion(t *testing.T) {
26 name := "my_counter"
27 c := generic.NewCounter(name)
28 g := NewCounterAsGauge(c)
29 top := NewGaugeAsCounter(g).With("label", "counter").(gaugeCounter)
30 mid := top.g.(counterGauge)
31 low := mid.c.(*generic.Counter)
32 if want, have := name, low.Name; want != have {
33 t.Errorf("Name: want %q, have %q", want, have)
34 }
35 if err := teststat.TestCounter(top, low.Value); err != nil {
36 t.Fatal(err)
37 }
38 }
39
40 func TestHistogramGaugeConversion(t *testing.T) {
41 name := "my_histogram"
42 h := generic.NewHistogram(name, 50)
43 g := NewHistogramAsGauge(h)
44 top := NewGaugeAsHistogram(g).With("label", "histogram").(gaugeHistogram)
45 mid := top.g.(histogramGauge)
46 low := mid.h.(*generic.Histogram)
47 if want, have := name, low.Name; want != have {
48 t.Errorf("Name: want %q, have %q", want, have)
49 }
50 quantiles := func() (float64, float64, float64, float64) {
51 return low.Quantile(0.50), low.Quantile(0.90), low.Quantile(0.95), low.Quantile(0.99)
52 }
53 if err := teststat.TestHistogram(top, quantiles, 0.01); err != nil {
54 t.Fatal(err)
55 }
56 }
57
View as plain text