meter_test.go 605 B

123456789101112131415161718192021222324252627282930313233343536
  1. package metrics
  2. import (
  3. "testing"
  4. "time"
  5. )
  6. func TestMeterZero(t *testing.T) {
  7. m := NewMeter()
  8. if count := m.Count(); 0 != count {
  9. t.Errorf("m.Count(): 0 != %v\n", count)
  10. }
  11. }
  12. func TestMeterNonzero(t *testing.T) {
  13. m := NewMeter()
  14. m.Mark(3)
  15. if count := m.Count(); 3 != count {
  16. t.Errorf("m.Count(): 3 != %v\n", count)
  17. }
  18. }
  19. func TestMeterDecay(t *testing.T) {
  20. m := &StandardMeter{
  21. make(chan int64),
  22. make(chan meterV),
  23. time.NewTicker(1),
  24. }
  25. go m.arbiter()
  26. m.Mark(1)
  27. rateMean := m.RateMean()
  28. time.Sleep(1)
  29. if m.RateMean() >= rateMean {
  30. t.Error("m.RateMean() didn't decrease")
  31. }
  32. }