@@ -48,68 +48,79 @@ def test_create_summary_value(self):
4848VD_COUNT = 100
4949VD_SUM = 1000.0
5050VD_SUM_OF_SQUARED_DEVIATION = 10.0
51- BUCKET_BOUNDS = list (range (11 ))
51+ BOUNDS = list (range (1 , 10 ))
52+ BUCKET_OPTIONS = value_module .BucketOptions (value_module .Explicit (BOUNDS ))
5253BUCKETS = [value_module .Bucket (10 , None ) for ii in range (10 )]
5354
5455
5556class TestValueDistribution (unittest .TestCase ):
5657 def test_init (self ):
5758 distribution = value_module .ValueDistribution (
58- VD_COUNT , VD_SUM , VD_SUM_OF_SQUARED_DEVIATION , BUCKET_BOUNDS ,
59+ VD_COUNT , VD_SUM , VD_SUM_OF_SQUARED_DEVIATION , BUCKET_OPTIONS ,
5960 BUCKETS )
6061 self .assertEqual (distribution .count , VD_COUNT )
6162 self .assertEqual (distribution .sum , VD_SUM )
6263 self .assertEqual (distribution .sum_of_squared_deviation ,
6364 VD_SUM_OF_SQUARED_DEVIATION )
64- self .assertEqual (distribution .bucket_bounds , BUCKET_BOUNDS )
65+ self .assertEqual (distribution .bucket_options , BUCKET_OPTIONS )
66+ self .assertEqual (distribution .bucket_options .type_ .bounds , BOUNDS )
6567 self .assertEqual (distribution .buckets , BUCKETS )
6668
6769 def test_init_no_histogram (self ):
6870 distribution = value_module .ValueDistribution (
69- VD_COUNT , VD_SUM , VD_SUM_OF_SQUARED_DEVIATION , [], None )
71+ VD_COUNT , VD_SUM , VD_SUM_OF_SQUARED_DEVIATION ,
72+ value_module .BucketOptions (), None )
7073 self .assertEqual (distribution .count , VD_COUNT )
7174 self .assertEqual (distribution .sum , VD_SUM )
7275 self .assertEqual (distribution .sum_of_squared_deviation ,
7376 VD_SUM_OF_SQUARED_DEVIATION )
74- self .assertEqual (distribution .bucket_bounds , [] )
77+ self .assertIsNone (distribution .bucket_options . type_ )
7578 self .assertEqual (distribution .buckets , None )
7679
7780 def test_init_bad_args (self ):
81+ value_module .ValueDistribution (VD_COUNT , VD_SUM ,
82+ VD_SUM_OF_SQUARED_DEVIATION ,
83+ BUCKET_OPTIONS , BUCKETS )
7884
7985 with self .assertRaises (ValueError ):
8086 value_module .ValueDistribution (- 1 , VD_SUM ,
8187 VD_SUM_OF_SQUARED_DEVIATION ,
82- BUCKET_BOUNDS , BUCKETS )
88+ BUCKET_OPTIONS , BUCKETS )
8389
8490 with self .assertRaises (ValueError ):
85- value_module .ValueDistribution (
86- 0 , VD_SUM , VD_SUM_OF_SQUARED_DEVIATION , BUCKET_BOUNDS , BUCKETS )
91+ value_module .ValueDistribution (0 , VD_SUM ,
92+ VD_SUM_OF_SQUARED_DEVIATION ,
93+ BUCKET_OPTIONS , BUCKETS )
8794
8895 with self .assertRaises (ValueError ):
8996 value_module .ValueDistribution (0 , 0 , VD_SUM_OF_SQUARED_DEVIATION ,
90- BUCKET_BOUNDS , BUCKETS )
97+ BUCKET_OPTIONS , BUCKETS )
9198
9299 with self .assertRaises (ValueError ):
93100 value_module .ValueDistribution (
94101 VD_COUNT , VD_SUM , VD_SUM_OF_SQUARED_DEVIATION , None , BUCKETS )
95102
96103 with self .assertRaises (ValueError ):
97- value_module .ValueDistribution (
98- VD_COUNT , VD_SUM , VD_SUM_OF_SQUARED_DEVIATION , [], BUCKETS )
104+ value_module .ValueDistribution (0 , 0 , 0 , BUCKET_OPTIONS , BUCKETS )
99105
100106 with self .assertRaises (ValueError ):
101- value_module .ValueDistribution (0 , 0 , 0 , BUCKET_BOUNDS , BUCKETS )
107+ value_module .ValueDistribution (VD_COUNT - 1 , VD_SUM ,
108+ VD_SUM_OF_SQUARED_DEVIATION ,
109+ BUCKET_OPTIONS , BUCKETS )
102110
103111 with self .assertRaises (ValueError ):
104- value_module .ValueDistribution (
105- VD_COUNT , VD_SUM , VD_SUM_OF_SQUARED_DEVIATION , [ 1 , 1 ] ,
106- [ value_module .Bucket ( 1 , None ),
107- value_module . Bucket ( 1 , None )] )
112+ value_module .ValueDistribution (VD_COUNT , VD_SUM ,
113+ VD_SUM_OF_SQUARED_DEVIATION ,
114+ value_module .BucketOptions ( ),
115+ BUCKETS )
108116
109117 with self .assertRaises (ValueError ):
110- value_module .ValueDistribution (VD_COUNT - 1 , VD_SUM ,
118+ value_module .ValueDistribution (VD_COUNT , VD_SUM ,
111119 VD_SUM_OF_SQUARED_DEVIATION ,
112- BUCKET_BOUNDS , BUCKETS )
120+ BUCKET_OPTIONS , BUCKETS [:- 1 ])
121+
122+ def test_init_empty_buckets_null_bucket_options (self ):
123+ pass
113124
114125
115126EX_VALUE = 1.0
@@ -135,3 +146,24 @@ def test_init(self):
135146 bucket = value_module .Bucket (1 , self .exemplar )
136147 self .assertEqual (bucket .count , 1 )
137148 self .assertEqual (bucket .exemplar , self .exemplar )
149+
150+
151+ class TestExplicit (unittest .TestCase ):
152+ def test_init (self ):
153+ bounds = [1 , 2 ]
154+ explicit = value_module .Explicit (bounds )
155+ self .assertEqual (explicit .bounds , bounds )
156+
157+ def test_bad_init (self ):
158+ with self .assertRaises (ValueError ):
159+ value_module .Explicit (None )
160+ with self .assertRaises (ValueError ):
161+ value_module .Explicit ([])
162+ with self .assertRaises (ValueError ):
163+ value_module .Explicit ([- 1 , 1 , 2 ])
164+ with self .assertRaises (ValueError ):
165+ value_module .Explicit ([0 , 1 , 2 ])
166+ with self .assertRaises (ValueError ):
167+ value_module .Explicit ([1 , 1 ])
168+ with self .assertRaises (ValueError ):
169+ value_module .Explicit ([2 , 1 ])
0 commit comments