Esempio n. 1
0
 def test_addition(self):
     rules1 = rules(
         (gt(0), 'positive'),
         (lt(0), 'negative'),
     )
     rules2 = rules((eq(0), 'zero'), )
     these_rules = rules1 + rules2
     self.assertEqual(len(these_rules), 3)
     self.assertEqual(decide(these_rules, 0), 'zero')
Esempio n. 2
0
 def test_addition(self):
     rules1 = rules(
         (gt(0), 'positive'),
         (lt(0), 'negative'),
     )
     rules2 = rules(
         (eq(0), 'zero'),
     )
     these_rules = rules1 + rules2
     self.assertEqual(len(these_rules), 3)
     self.assertEqual(decide(these_rules, 0), 'zero')
Esempio n. 3
0
 def test_partial_application(self):
     positivity = decide(self.positivity_rules)
     self.assertIsInstance(positivity, collections.Callable)
     value = positivity(10)
     self.assertEqual(value, 'positive')
Esempio n. 4
0
 def test_non_rules_objects_as_rules(self):
     with self.assertRaises(TypeError):
         decide(['something', 'whatever'], 20)
Esempio n. 5
0
 def test_no_matching_rules(self):
     with self.assertRaises(NoMatchingRule):
         decide(self.positivity_rules, 0)
Esempio n. 6
0
 def test_nested_rules(self):
     value = decide(self.type_rules, 0)
     self.assertEqual(value, 'zero')
Esempio n. 7
0
 def test_flat_rules(self):
     value = decide(self.positivity_rules, -10)
     self.assertEqual(value, 'negative')