master
go 78 lines 1.65 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package oldmetrix
4
5 import (
6 "testing"
7
8 "github.com/stretchr/testify/assert"
9 )
10
11 func TestNewSummary(t *testing.T) {
12 s := NewSummary().(*summary)
13 assert.EqualValues(t, 0, s.count)
14 assert.Equal(t, 0.0, s.sum)
15 s.Observe(3.14)
16 assert.Equal(t, 3.14, s.min)
17 assert.Equal(t, 3.14, s.max)
18 }
19
20 func TestSummary_WriteTo(t *testing.T) {
21 s := NewSummary()
22
23 m1 := map[string]int64{}
24 s.WriteTo(m1, "pi", 100, 1)
25 assert.Len(t, m1, 2)
26 assert.Contains(t, m1, "pi_count")
27 assert.Contains(t, m1, "pi_sum")
28 assert.EqualValues(t, 0, m1["pi_count"])
29 assert.EqualValues(t, 0, m1["pi_sum"])
30
31 s.Observe(3.14)
32 s.Observe(2.71)
33 s.Observe(-10)
34
35 m2 := map[string]int64{}
36 s.WriteTo(m1, "pi", 100, 1)
37 s.WriteTo(m2, "pi", 100, 1)
38 assert.Equal(t, m1, m2)
39 assert.Len(t, m1, 5)
40 assert.EqualValues(t, 3, m1["pi_count"])
41 assert.EqualValues(t, -415, m1["pi_sum"])
42 assert.EqualValues(t, -1000, m1["pi_min"])
43 assert.EqualValues(t, 314, m1["pi_max"])
44 assert.EqualValues(t, -138, m1["pi_avg"])
45
46 s.Reset()
47 s.WriteTo(m1, "pi", 100, 1)
48 assert.Len(t, m1, 2)
49 assert.Contains(t, m1, "pi_count")
50 assert.Contains(t, m1, "pi_sum")
51 assert.EqualValues(t, 0, m1["pi_count"])
52 assert.EqualValues(t, 0, m1["pi_sum"])
53 }
54
55 func TestSummary_Reset(t *testing.T) {
56 s := NewSummary().(*summary)
57 s.Observe(1)
58 s.Reset()
59 assert.EqualValues(t, 0, s.count)
60 }
61
62 func BenchmarkSummary_Observe(b *testing.B) {
63 s := NewSummary()
64 for i := 0; i < b.N; i++ {
65 s.Observe(2.5)
66 }
67 }
68
69 func BenchmarkSummary_WriteTo(b *testing.B) {
70 s := NewSummary()
71 s.Observe(2.5)
72 s.Observe(3.5)
73 s.Observe(4.5)
74 m := map[string]int64{}
75 for i := 0; i < b.N; i++ {
76 s.WriteTo(m, "pi", 100, 1)
77 }
78 }