package metrics import "testing" func TestExpDecaySample10(t *testing.T) { s := NewExpDecaySample(100, 0.99) for i := 0; i < 10; i++ { s.Update(int64(i)) } if size := s.Size(); 10 != size { t.Errorf("s.Size(): 10 != %v\n", size) } if l := len(s.Values()); 10 != l { t.Errorf("len(s.Values()): 10 != %v\n", l) } for _, v := range s.Values() { if v > 10 || v < 0 { t.Errorf("out of range [0, 10): %v\n", v) } } } func TestExpDecaySample100(t *testing.T) { s := NewExpDecaySample(1000, 0.01) for i := 0; i < 100; i++ { s.Update(int64(i)) } if size := s.Size(); 100 != size { t.Errorf("s.Size(): 100 != %v\n", size) } if l := len(s.Values()); 100 != l { t.Errorf("len(s.Values()): 100 != %v\n", l) } for _, v := range s.Values() { if v > 100 || v < 0 { t.Errorf("out of range [0, 100): %v\n", v) } } } func TestExpDecaySample1000(t *testing.T) { s := NewExpDecaySample(100, 0.99) for i := 0; i < 1000; i++ { s.Update(int64(i)) } if size := s.Size(); 100 != size { t.Errorf("s.Size(): 100 != %v\n", size) } if l := len(s.Values()); 100 != l { t.Errorf("len(s.Values()): 100 != %v\n", l) } for _, v := range s.Values() { if v > 1000 || v < 0 { t.Errorf("out of range [0, 100): %v\n", v) } } } func TestUniformSample(t *testing.T) { s := NewUniformSample(100) for i := 0; i < 1000; i++ { s.Update(int64(i)) } if size := s.Size(); 100 != size { t.Errorf("s.Size(): 100 != %v\n", size) } if l := len(s.Values()); 100 != l { t.Errorf("len(s.Values()): 100 != %v\n", l) } for _, v := range s.Values() { if v > 1000 || v < 0 { t.Errorf("out of range [0, 100): %v\n", v) } } }