zone_stats_test.go 907 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package zones
  2. import (
  3. "github.com/stretchr/testify/assert"
  4. "testing"
  5. )
  6. func TestZoneStats(t *testing.T) {
  7. zs := NewZoneLabelStats(4)
  8. if zs == nil {
  9. t.Fatalf("NewZoneLabelStats returned nil")
  10. }
  11. t.Log("adding 4 entries")
  12. zs.Add("abc")
  13. zs.Add("foo")
  14. zs.Add("def")
  15. zs.Add("abc")
  16. t.Log("getting counts")
  17. co := zs.Counts()
  18. assert.Equal(t, co["abc"], 2)
  19. assert.Equal(t, co["foo"], 1)
  20. zs.Add("foo")
  21. co = zs.Counts()
  22. assert.Equal(t, co["abc"], 1) // the first abc rolled off
  23. assert.Equal(t, co["foo"], 2)
  24. zs.Close()
  25. zs = NewZoneLabelStats(10)
  26. zs.Add("a")
  27. zs.Add("a")
  28. zs.Add("a")
  29. zs.Add("b")
  30. zs.Add("c")
  31. zs.Add("c")
  32. zs.Add("d")
  33. zs.Add("d")
  34. zs.Add("e")
  35. zs.Add("f")
  36. top := zs.TopCounts(2)
  37. assert.Len(t, top, 3, "TopCounts(2) returned 3 elements")
  38. assert.Equal(t, top[0].Label, "a")
  39. zs.Reset()
  40. assert.Len(t, zs.Counts(), 0, "Counts() is empty after reset")
  41. zs.Close()
  42. }