zone_stats_test.go 864 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package main
  2. import (
  3. . "github.com/abh/geodns/Godeps/_workspace/src/gopkg.in/check.v1"
  4. )
  5. type ZoneStatsSuite struct {
  6. }
  7. var _ = Suite(&ZoneStatsSuite{})
  8. func (s *ZoneStatsSuite) TestZoneStats(c *C) {
  9. zs := NewZoneLabelStats(4)
  10. c.Assert(zs, NotNil)
  11. c.Log("adding 4 entries")
  12. zs.Add("abc")
  13. zs.Add("foo")
  14. zs.Add("def")
  15. zs.Add("abc")
  16. c.Log("getting counts")
  17. co := zs.Counts()
  18. c.Check(co["abc"], Equals, 2)
  19. c.Check(co["foo"], Equals, 1)
  20. zs.Add("foo")
  21. co = zs.Counts()
  22. c.Check(co["abc"], Equals, 1)
  23. c.Check(co["foo"], Equals, 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. c.Check(top, HasLen, 3)
  38. c.Check(top[0].Label, Equals, "a")
  39. zs.Reset()
  40. c.Check(zs.Counts(), HasLen, 0)
  41. zs.Close()
  42. }