forked from grafana-cold-storage/metrictank
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata_test.go
More file actions
96 lines (84 loc) · 2.12 KB
/
Copy pathdata_test.go
File metadata and controls
96 lines (84 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package expr
import (
"math"
"gopkg.in/raintank/schema.v1"
)
var a = []schema.Point{
{Val: 0, Ts: 10},
{Val: 0, Ts: 20},
{Val: 5.5, Ts: 30},
{Val: math.NaN(), Ts: 40},
{Val: math.NaN(), Ts: 50},
{Val: 1234567890, Ts: 60},
}
var b = []schema.Point{
{Val: 0, Ts: 10},
{Val: math.MaxFloat64, Ts: 20},
{Val: math.MaxFloat64 - 20, Ts: 30},
{Val: math.NaN(), Ts: 40},
{Val: 1234567890, Ts: 50},
{Val: math.NaN(), Ts: 60},
}
var avg4a2b = []schema.Point{
{Val: 0, Ts: 10},
{Val: math.Inf(0), Ts: 20},
{Val: math.Inf(0), Ts: 30},
{Val: math.NaN(), Ts: 40},
{Val: 1234567890, Ts: 50}, // in accordance with graphite, avg(5,null) = 5
{Val: 1234567890, Ts: 60},
}
var c = []schema.Point{
{Val: 0, Ts: 10},
{Val: 0, Ts: 20},
{Val: 1, Ts: 30},
{Val: 2, Ts: 40},
{Val: 3, Ts: 50},
{Val: 4, Ts: 60},
}
// emulate an 8 bit counter
var d = []schema.Point{
{Val: 0, Ts: 10},
{Val: 33, Ts: 20},
{Val: 199, Ts: 30},
{Val: 29, Ts: 40}, // overflowed
{Val: 80, Ts: 50},
{Val: 250, Ts: 60},
}
var sumab = []schema.Point{
{Val: 0, Ts: 10},
{Val: math.MaxFloat64, Ts: 20},
{Val: math.MaxFloat64 - 14.5, Ts: 30},
{Val: math.NaN(), Ts: 40},
{Val: 1234567890, Ts: 50}, // graphite says 5+null=5 not null
{Val: 1234567890, Ts: 60},
}
var sumabc = []schema.Point{
{Val: 0, Ts: 10},
{Val: math.MaxFloat64, Ts: 20},
{Val: math.MaxFloat64 - 13.5, Ts: 30},
{Val: 2, Ts: 40},
{Val: 1234567893, Ts: 50},
{Val: 1234567894, Ts: 60},
}
var avgab = []schema.Point{
{Val: 0, Ts: 10},
{Val: math.MaxFloat64 / 2, Ts: 20},
{Val: (math.MaxFloat64 - 14.5) / 2, Ts: 30},
{Val: math.NaN(), Ts: 40},
{Val: 1234567890, Ts: 50}, // in accordance with graphite, avg(5,null) = 5
{Val: 1234567890, Ts: 60},
}
var avgabc = []schema.Point{
{Val: 0, Ts: 10},
{Val: math.MaxFloat64 / 3, Ts: 20},
{Val: (math.MaxFloat64 - 13.5) / 3, Ts: 30},
{Val: 2, Ts: 40},
{Val: float64(1234567893) / 2, Ts: 50},
{Val: float64(1234567894) / 2, Ts: 60},
}
// make sure we test with the correct data, don't mask if processing accidentally modifies our input data
func getCopy(in []schema.Point) []schema.Point {
out := make([]schema.Point, len(in))
copy(out, in)
return out
}