@@ -23,6 +23,12 @@ var textRule = rule{Conditions: []condition{
23
23
24
24
var ruleWithEmptyConditions = rule {Conditions : []condition {}}
25
25
26
+ func init () {
27
+ numericRule .Precompute ()
28
+ semverRule .Precompute ()
29
+ textRule .Precompute ()
30
+ }
31
+
26
32
func Test_TextRule_NoMatch (t * testing.T ) {
27
33
subjectAttributes := make (Attributes )
28
34
subjectAttributes ["age" ] = 99
@@ -284,42 +290,46 @@ func Test_isNotNull_attributePresent(t *testing.T) {
284
290
285
291
func Test_handles_all_numeric_types (t * testing.T ) {
286
292
condition := condition {Operator : "GT" , Attribute : "powerLevel" , Value : "9000" }
293
+ condition .Precompute ()
294
+
287
295
// Floats
288
- assert .True (t , condition .matches (Attributes { "powerLevel" : 9001.0 }) )
289
- assert .False (t , condition .matches (Attributes { "powerLevel" : 9000.0 }) )
290
- assert .True (t , condition .matches (Attributes { "powerLevel" : float64 (9001 )}) )
291
- assert .False (t , condition .matches (Attributes { "powerLevel" : float64 (- 9001.0 )}) )
292
- assert .True (t , condition .matches (Attributes { "powerLevel" : float32 (9001 )}) )
293
- assert .False (t , condition .matches (Attributes { "powerLevel" : float32 (8999 )}) )
296
+ assert .True (t , condition .matches (Attributes {"powerLevel" : 9001.0 }))
297
+ assert .False (t , condition .matches (Attributes {"powerLevel" : 9000.0 }))
298
+ assert .True (t , condition .matches (Attributes {"powerLevel" : float64 (9001 )}))
299
+ assert .False (t , condition .matches (Attributes {"powerLevel" : float64 (- 9001.0 )}))
300
+ assert .True (t , condition .matches (Attributes {"powerLevel" : float32 (9001 )}))
301
+ assert .False (t , condition .matches (Attributes {"powerLevel" : float32 (8999 )}))
294
302
// Signed Integers
295
- assert .True (t , condition .matches (Attributes { "powerLevel" : 9001 }) )
296
- assert .False (t , condition .matches (Attributes { "powerLevel" : 9000 }) )
297
- assert .False (t , condition .matches (Attributes { "powerLevel" : int8 (1 )}) )
298
- assert .True (t , condition .matches (Attributes { "powerLevel" : int16 (9001 )}) )
299
- assert .False (t , condition .matches (Attributes { "powerLevel" : int16 (- 9002 )}) )
300
- assert .True (t , condition .matches (Attributes { "powerLevel" : int32 (10000 )}) )
301
- assert .False (t , condition .matches (Attributes { "powerLevel" : int32 (0 )}) )
302
- assert .True (t , condition .matches (Attributes { "powerLevel" : int64 (9001 )}) )
303
- assert .False (t , condition .matches (Attributes { "powerLevel" : int64 (8999 )}) )
303
+ assert .True (t , condition .matches (Attributes {"powerLevel" : 9001 }))
304
+ assert .False (t , condition .matches (Attributes {"powerLevel" : 9000 }))
305
+ assert .False (t , condition .matches (Attributes {"powerLevel" : int8 (1 )}))
306
+ assert .True (t , condition .matches (Attributes {"powerLevel" : int16 (9001 )}))
307
+ assert .False (t , condition .matches (Attributes {"powerLevel" : int16 (- 9002 )}))
308
+ assert .True (t , condition .matches (Attributes {"powerLevel" : int32 (10000 )}))
309
+ assert .False (t , condition .matches (Attributes {"powerLevel" : int32 (0 )}))
310
+ assert .True (t , condition .matches (Attributes {"powerLevel" : int64 (9001 )}))
311
+ assert .False (t , condition .matches (Attributes {"powerLevel" : int64 (8999 )}))
304
312
// Unsigned Integers
305
- assert .False (t , condition .matches (Attributes { "powerLevel" : uint8 (1 )}) )
306
- assert .True (t , condition .matches (Attributes { "powerLevel" : uint16 (9001 )}) )
307
- assert .False (t , condition .matches (Attributes { "powerLevel" : uint16 (8999 )}) )
308
- assert .True (t , condition .matches (Attributes { "powerLevel" : uint32 (10000 )}) )
309
- assert .False (t , condition .matches (Attributes { "powerLevel" : uint32 (0 )}) )
310
- assert .True (t , condition .matches (Attributes { "powerLevel" : uint64 (9001 )}) )
311
- assert .False (t , condition .matches (Attributes { "powerLevel" : uint64 (8999 )}) )
313
+ assert .False (t , condition .matches (Attributes {"powerLevel" : uint8 (1 )}))
314
+ assert .True (t , condition .matches (Attributes {"powerLevel" : uint16 (9001 )}))
315
+ assert .False (t , condition .matches (Attributes {"powerLevel" : uint16 (8999 )}))
316
+ assert .True (t , condition .matches (Attributes {"powerLevel" : uint32 (10000 )}))
317
+ assert .False (t , condition .matches (Attributes {"powerLevel" : uint32 (0 )}))
318
+ assert .True (t , condition .matches (Attributes {"powerLevel" : uint64 (9001 )}))
319
+ assert .False (t , condition .matches (Attributes {"powerLevel" : uint64 (8999 )}))
312
320
// Strings
313
- assert .True (t , condition .matches (Attributes { "powerLevel" : "9001" }) )
314
- assert .True (t , condition .matches (Attributes { "powerLevel" : "9000.1" }) )
315
- assert .False (t , condition .matches (Attributes { "powerLevel" : "9000" }) )
316
- assert .False (t , condition .matches (Attributes { "powerLevel" : ".2" }) )
321
+ assert .True (t , condition .matches (Attributes {"powerLevel" : "9001" }))
322
+ assert .True (t , condition .matches (Attributes {"powerLevel" : "9000.1" }))
323
+ assert .False (t , condition .matches (Attributes {"powerLevel" : "9000" }))
324
+ assert .False (t , condition .matches (Attributes {"powerLevel" : ".2" }))
317
325
}
318
326
319
327
func Test_invalid_numeric_types (t * testing.T ) {
320
328
condition := condition {Operator : "GT" , Attribute : "powerLevel" , Value : "9000" }
321
- assert .False (t , condition .matches (Attributes { "powerLevel" : "empty" }) )
322
- assert .False (t , condition .matches (Attributes { "powerLevel" : "" }) )
323
- assert .False (t , condition .matches (Attributes { "powerLevel" : false }) )
324
- assert .False (t , condition .matches (Attributes { "powerLevel" : true }) )
329
+ condition .Precompute ()
330
+
331
+ assert .False (t , condition .matches (Attributes {"powerLevel" : "empty" }))
332
+ assert .False (t , condition .matches (Attributes {"powerLevel" : "" }))
333
+ assert .False (t , condition .matches (Attributes {"powerLevel" : false }))
334
+ assert .False (t , condition .matches (Attributes {"powerLevel" : true }))
325
335
}
0 commit comments