-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample_test.go
More file actions
44 lines (31 loc) · 1.29 KB
/
example_test.go
File metadata and controls
44 lines (31 loc) · 1.29 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
package stw_test
import (
"fmt"
"time"
"github.com/go-tk/stw"
)
func ExampleSlidingTimeWindow() {
stw := stw.NewSlidingTimeWindow(300*time.Millisecond /* period */, 3 /* numberOfBuckets */)
fmt.Println("1) Sample Count:", stw.Count(), "Sum:", stw.Sum(), "Average:", stw.Average())
stw.AddSample(time.Now(), 1)
fmt.Println("2) Sample Count:", stw.Count(), "Sum:", stw.Sum(), "Average:", stw.Average())
time.Sleep(151 * time.Millisecond)
stw.AddSample(time.Now(), 10)
fmt.Println("3) Sample Count:", stw.Count(), "Sum:", stw.Sum(), "Average:", stw.Average())
time.Sleep(151 * time.Millisecond)
stw.AddSample(time.Now(), 100)
fmt.Println("4) Sample Count:", stw.Count(), "Sum:", stw.Sum(), "Average:", stw.Average())
time.Sleep(151 * time.Millisecond)
stw.Advance(time.Now())
fmt.Println("5) Sample Count:", stw.Count(), "Sum:", stw.Sum(), "Average:", stw.Average())
time.Sleep(151 * time.Millisecond)
stw.Advance(time.Now())
fmt.Println("6) Sample Count:", stw.Count(), "Sum:", stw.Sum(), "Average:", stw.Average())
// Output:
// 1) Sample Count: 0 Sum: 0 Average: NaN
// 2) Sample Count: 1 Sum: 1 Average: 1
// 3) Sample Count: 2 Sum: 11 Average: 5.5
// 4) Sample Count: 2 Sum: 110 Average: 55
// 5) Sample Count: 1 Sum: 100 Average: 100
// 6) Sample Count: 0 Sum: 0 Average: NaN
}