Пример #1
0
 def test_leading_bind_str_equal(self):
     actions = ['$x.a.b.c', '$y!b.c', '$x.$y!$z']
     parsed = [FP.parseString(x)[0] for x in actions]
     zipped = zip(actions, parsed)
     for a,p in zipped:
         pAsStr = "".join([str(x) for x in p])
         self.assertEqual(a, pAsStr)
Пример #2
0
 def test_floats(self):
     for i in range(100):
         mult = 10 ** round(random.random() * 4)
         a = round(random.random() * mult)
         b = round(random.random() * mult)
         float_form = float(str(a) + "." + str(b))
         d_form = str(a) + "d" + str(b)
         result = FP.parseString('.a.'+d_form)[0]
         self.assertEqual(result[-1]._value, float_form)
Пример #3
0
 def test_fact_str_equal(self):
     actions = [".a.b.c", ".a.b!c", '.a.b."a string".c',
                '.a.b!"a string"!c',
                '.a.b.$x','.a!$x!y']
     parsed = [FP.parseString(x)[0] for x in actions]
     zipped = zip(actions, parsed)
     for a,p in zipped:
         pAsStr = "".join([str(x) for x in p])
         self.assertEqual(a,pAsStr)
Пример #4
0
 def test_fact_leading_bind(self):
     result = FP.parseString('$x.a.b.c')[0]
     self.assertIsInstance(result[0], util.Bind)
     self.assertTrue(all([isinstance(x, T.Node) for x in result[1:]]))
Пример #5
0
 def test_bind_addition_to_node_recognition(self):
     result = FP.parseString('.$a.$b!$c')[0]
     for x in result:
         self.assertTrue(x._meta_eval[util.META_OP.BIND])
Пример #6
0
 def test_strings(self):
     result = FP.parseString('.a.b."This is a test"!c')[0]
     self.assertEqual(len(result), 4)
     self.assertEqual(result[2]._value, "This is a test")
Пример #7
0
 def test_negative_number_parsing(self):
     for i in range(100):
         mult = 10 ** round(random.random() * 4)
         r = - round(random.random() * mult)
         result = FP.parseString('.a.'+str(r))[0]
         self.assertEqual(result[-1]._value, r)
Пример #8
0
 def test_exclusion_operator_string_recovery(self):
     result = FP.parseString('!a!b!c')[0]
     self.assertEqual("".join([str(x) for x in result]), "!a!b!c")
Пример #9
0
 def test_parseString(self):
     result = FP.parseString('.a.b.c,\n .b.c.d')
     self.assertIsInstance(result, list)
     self.assertEqual(len(result), 2)
     self.assertTrue(all([isinstance(x, list) for x in result]))
Пример #10
0
 def test_parseString(self):
     result = FP.parseString('.a.b.c')[0]
     self.assertIsInstance(result, list)
     self.assertTrue(all([isinstance(x, FP.Node) for x in result]))
     self.assertEqual("".join([str(x) for x in result]), '.a.b.c')
Пример #11
0
 def test_binding_expansion(self):
     bindings = { "a" : FP.parseString(".blah")[0], "b": FP.parseString(".bloo")[0] }
     result = FP.parseString('$a.b.$b!c')[0]
     expanded = util.expandFact(result, bindings)
     asString = "".join([str(x) for x in expanded if not x.is_root()])
     self.assertEqual(asString, ".blah.b.bloo!c")
Пример #12
0
 def test_action_binding_expansion(self):
     bindings = {"x": FP.parseString('.a.b.c')[0]}
     action = AP.parseString("+($x)")[0]
     newAction = action.expandBindings(bindings)
     self.assertEqual(str(newAction), "+(.a.b.c)")