@@ -10,7 +10,7 @@ import (
1010
1111func TestNewUsageByPathWithQuantity (t * testing.T ) {
1212 Convey ("Testing NewUsageByPathWithQuantity()" , t , func () {
13- usage := NewUsageByPathWithQuantity ("/compute/c1/run" , 1 )
13+ usage := NewUsageByPathWithQuantity ("/compute/c1/run" , big . NewRat ( 1 , 1 ) )
1414 So (usage .PricingObject .Path , ShouldEqual , "/compute/c1/run" )
1515 So (usage .Quantity , ShouldEqualBigRat , big .NewRat (1 , 1 ))
1616 })
@@ -27,7 +27,7 @@ func TestNewUsageByPath(t *testing.T) {
2727func TestNewUsageWithQuantity (t * testing.T ) {
2828 Convey ("Testing NewUsageWithQuantity()" , t , func () {
2929 object := CurrentPricing .GetByPath ("/compute/c1/run" )
30- usage := NewUsageWithQuantity (object , 1 )
30+ usage := NewUsageWithQuantity (object , big . NewRat ( 1 , 1 ) )
3131 So (usage .PricingObject .Path , ShouldEqual , "/compute/c1/run" )
3232 So (usage .Quantity , ShouldEqualBigRat , big .NewRat (1 , 1 ))
3333 })
@@ -154,110 +154,110 @@ func TestUsage_SetDuration(t *testing.T) {
154154func TestUsage_BillableQuantity (t * testing.T ) {
155155 Convey ("Testing Usage.BillableQuantity()" , t , FailureContinues , func () {
156156 object := & PricingObject {
157- UnitQuantity : 60 ,
157+ UnitQuantity : big . NewRat ( 60 , 1 ) ,
158158 }
159- usage := NewUsageWithQuantity (object , - 1 )
159+ usage := NewUsageWithQuantity (object , big . NewRat ( - 1 , 1 ) )
160160 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (0 , 1 ))
161161
162- usage = NewUsageWithQuantity (object , - 1000 )
162+ usage = NewUsageWithQuantity (object , big . NewRat ( - 1000 , 1 ) )
163163 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (0 , 1 ))
164164
165- usage = NewUsageWithQuantity (object , 0 )
165+ usage = NewUsageWithQuantity (object , big . NewRat ( 0 , 1 ) )
166166 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (0 , 1 ))
167167
168- usage = NewUsageWithQuantity (object , 1 )
168+ usage = NewUsageWithQuantity (object , big . NewRat ( 1 , 1 ) )
169169 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (60 , 1 ))
170170
171- usage = NewUsageWithQuantity (object , 59 )
171+ usage = NewUsageWithQuantity (object , big . NewRat ( 59 , 1 ) )
172172 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (60 , 1 ))
173173
174- usage = NewUsageWithQuantity (object , 59.9999 )
174+ usage = NewUsageWithQuantity (object , big . NewRat ( 599999 , 10000 )) // 59.9999
175175 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (60 , 1 ))
176176
177- usage = NewUsageWithQuantity (object , 60 )
177+ usage = NewUsageWithQuantity (object , big . NewRat ( 60 , 1 ) )
178178 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (60 , 1 ))
179179
180- usage = NewUsageWithQuantity (object , 60.00001 )
180+ usage = NewUsageWithQuantity (object , big . NewRat ( 6000001 , 100000 )) // 60.00001
181181 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (60 * 2 , 1 ))
182182
183- usage = NewUsageWithQuantity (object , 61 )
183+ usage = NewUsageWithQuantity (object , big . NewRat ( 61 , 1 ) )
184184 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (60 * 2 , 1 ))
185185
186- usage = NewUsageWithQuantity (object , 119 )
186+ usage = NewUsageWithQuantity (object , big . NewRat ( 119 , 1 ) )
187187 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (60 * 2 , 1 ))
188188
189- usage = NewUsageWithQuantity (object , 121 )
189+ usage = NewUsageWithQuantity (object , big . NewRat ( 121 , 1 ) )
190190 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (60 * 3 , 1 ))
191191
192- usage = NewUsageWithQuantity (object , 1000 )
192+ usage = NewUsageWithQuantity (object , big . NewRat ( 1000 , 1 ) )
193193 So (usage .BillableQuantity (), ShouldEqualBigRat , big .NewRat (60 * 17 , 1 ))
194194 })
195195}
196196
197197func TestUsage_LostQuantity (t * testing.T ) {
198198 Convey ("Testing Usage.LostQuantity()" , t , FailureContinues , func () {
199199 object := & PricingObject {
200- UnitQuantity : 60 ,
200+ UnitQuantity : big . NewRat ( 60 , 1 ) ,
201201 }
202- usage := NewUsageWithQuantity (object , - 1 )
202+ usage := NewUsageWithQuantity (object , big . NewRat ( - 1 , 1 ) )
203203 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (0 , 1 ))
204204
205- usage = NewUsageWithQuantity (object , - 1000 )
205+ usage = NewUsageWithQuantity (object , big . NewRat ( - 1000 , 1 ) )
206206 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (0 , 1 ))
207207
208- usage = NewUsageWithQuantity (object , 0 )
208+ usage = NewUsageWithQuantity (object , big . NewRat ( 0 , 1 ) )
209209 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (0 , 1 ))
210210
211- usage = NewUsageWithQuantity (object , 1 )
211+ usage = NewUsageWithQuantity (object , big . NewRat ( 1 , 1 ) )
212212 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (60 - 1 , 1 ))
213213
214- usage = NewUsageWithQuantity (object , 59 )
214+ usage = NewUsageWithQuantity (object , big . NewRat ( 59 , 1 ) )
215215 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (60 - 59 , 1 ))
216216
217- usage = NewUsageWithQuantity (object , 59.9999 )
218- So (usage .LostQuantity (), ShouldEqualBigRat , new (big.Rat ).Sub (big .NewRat (60 , 1 ), new ( big.Rat ). SetFloat64 ( 59.9999 )))
217+ usage = NewUsageWithQuantity (object , big . NewRat ( 599999 , 10000 )) // 59.9999
218+ So (usage .LostQuantity (), ShouldEqualBigRat , new (big.Rat ).Sub (big .NewRat (60 , 1 ), big .NewRat ( 599999 , 10000 )))
219219
220- usage = NewUsageWithQuantity (object , 60 )
220+ usage = NewUsageWithQuantity (object , big . NewRat ( 60 , 1 ) )
221221 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (0 , 1 ))
222222
223- usage = NewUsageWithQuantity (object , 60.00001 )
224- So (usage .LostQuantity (), ShouldEqualBigRat , new ( big.Rat ). SetFloat64 ( 60 * 2 - 60.00001 ))
223+ usage = NewUsageWithQuantity (object , big . NewRat ( 6000001 , 100000 )) // 60.00001
224+ So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat ( 6000000 * 2 - 6000001 , 100000 ))
225225
226- usage = NewUsageWithQuantity (object , 61 )
226+ usage = NewUsageWithQuantity (object , big . NewRat ( 61 , 1 ) )
227227 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (60 * 2 - 61 , 1 ))
228228
229- usage = NewUsageWithQuantity (object , 119 )
229+ usage = NewUsageWithQuantity (object , big . NewRat ( 119 , 1 ) )
230230 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (60 * 2 - 119 , 1 ))
231231
232- usage = NewUsageWithQuantity (object , 121 )
232+ usage = NewUsageWithQuantity (object , big . NewRat ( 121 , 1 ) )
233233 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (60 * 3 - 121 , 1 ))
234234
235- usage = NewUsageWithQuantity (object , 1000 )
235+ usage = NewUsageWithQuantity (object , big . NewRat ( 1000 , 1 ) )
236236 So (usage .LostQuantity (), ShouldEqualBigRat , big .NewRat (60 * 17 - 1000 , 1 ))
237237 })
238238}
239239
240240func TestUsage_Total (t * testing.T ) {
241241 Convey ("Testing Usage.Total()" , t , FailureContinues , func () {
242242 object := PricingObject {
243- UnitQuantity : 60 ,
244- UnitPrice : 0.012 ,
245- UnitPriceCap : 6 ,
243+ UnitQuantity : big . NewRat ( 60 , 1 ) ,
244+ UnitPrice : big . NewRat ( 12 , 1000 ), // 0.012
245+ UnitPriceCap : big . NewRat ( 6 , 1 ) ,
246246 }
247247
248- usage := NewUsageWithQuantity (& object , - 1 )
248+ usage := NewUsageWithQuantity (& object , big . NewRat ( - 1 , 1 ) )
249249 So (usage .Total (), ShouldEqualBigRat , big .NewRat (0 , 1 ))
250250
251- usage = NewUsageWithQuantity (& object , 0 )
251+ usage = NewUsageWithQuantity (& object , big . NewRat ( 0 , 1 ) )
252252 So (usage .Total (), ShouldEqualBigRat , big .NewRat (0 , 1 ))
253253
254- usage = NewUsageWithQuantity (& object , 1 )
255- So (usage .Total (), ShouldEqualBigRat , new ( big.Rat ). Mul ( big . NewRat (60 , 1 ), new (big. Rat ). SetFloat64 ( 0.012 )))
254+ usage = NewUsageWithQuantity (& object , big . NewRat ( 1 , 1 ) )
255+ So (usage .Total (), ShouldEqualBigRat , big .NewRat (60 * 12 , 1000 )) // 60 * 0.012
256256
257- usage = NewUsageWithQuantity (& object , 61 )
258- So (usage .Total (), ShouldEqualBigRat , new ( big.Rat ). Mul ( big . NewRat (120 , 1 ), new (big. Rat ). SetFloat64 ( 0.012 )))
257+ usage = NewUsageWithQuantity (& object , big . NewRat ( 61 , 1 ) )
258+ So (usage .Total (), ShouldEqualBigRat , big .NewRat (120 * 12 , 1000 )) // 120 * 0.012
259259
260- usage = NewUsageWithQuantity (& object , 1000 )
260+ usage = NewUsageWithQuantity (& object , big . NewRat ( 1000 , 1 ) )
261261 So (usage .Total (), ShouldEqualBigRat , big .NewRat (6 , 1 ))
262262 })
263263}
0 commit comments