sample_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package metrics
  2. import "testing"
  3. func TestExpDecaySample10(t *testing.T) {
  4. s := NewExpDecaySample(100, 0.99)
  5. for i := 0; i < 10; i++ {
  6. s.Update(int64(i))
  7. }
  8. if size := s.Size(); 10 != size {
  9. t.Errorf("s.Size(): 10 != %v\n", size)
  10. }
  11. if l := len(s.Values()); 10 != l {
  12. t.Errorf("len(s.Values()): 10 != %v\n", l)
  13. }
  14. for _, v := range s.Values() {
  15. if v > 10 || v < 0 {
  16. t.Errorf("out of range [0, 10): %v\n", v)
  17. }
  18. }
  19. }
  20. func TestExpDecaySample100(t *testing.T) {
  21. s := NewExpDecaySample(1000, 0.01)
  22. for i := 0; i < 100; i++ {
  23. s.Update(int64(i))
  24. }
  25. if size := s.Size(); 100 != size {
  26. t.Errorf("s.Size(): 100 != %v\n", size)
  27. }
  28. if l := len(s.Values()); 100 != l {
  29. t.Errorf("len(s.Values()): 100 != %v\n", l)
  30. }
  31. for _, v := range s.Values() {
  32. if v > 100 || v < 0 {
  33. t.Errorf("out of range [0, 100): %v\n", v)
  34. }
  35. }
  36. }
  37. func TestExpDecaySample1000(t *testing.T) {
  38. s := NewExpDecaySample(100, 0.99)
  39. for i := 0; i < 1000; i++ {
  40. s.Update(int64(i))
  41. }
  42. if size := s.Size(); 100 != size {
  43. t.Errorf("s.Size(): 100 != %v\n", size)
  44. }
  45. if l := len(s.Values()); 100 != l {
  46. t.Errorf("len(s.Values()): 100 != %v\n", l)
  47. }
  48. for _, v := range s.Values() {
  49. if v > 1000 || v < 0 {
  50. t.Errorf("out of range [0, 100): %v\n", v)
  51. }
  52. }
  53. }
  54. func TestUniformSample(t *testing.T) {
  55. s := NewUniformSample(100)
  56. for i := 0; i < 1000; i++ {
  57. s.Update(int64(i))
  58. }
  59. if size := s.Size(); 100 != size {
  60. t.Errorf("s.Size(): 100 != %v\n", size)
  61. }
  62. if l := len(s.Values()); 100 != l {
  63. t.Errorf("len(s.Values()): 100 != %v\n", l)
  64. }
  65. for _, v := range s.Values() {
  66. if v > 1000 || v < 0 {
  67. t.Errorf("out of range [0, 100): %v\n", v)
  68. }
  69. }
  70. }