Begin adding a unit test suite to test the internals.
Chris Pressey
6 years ago
0 | import unittest | |
1 | from unittest import TestCase | |
2 | ||
3 | from samovar.terms import Term, Var | |
4 | ||
5 | ||
6 | class TermTestCase(TestCase): | |
7 | def test_term_basic_properties(self): | |
8 | t1 = Term('alice') | |
9 | t2 = Term('actor', subterms=[t1]) | |
10 | v1 = Var('?A') | |
11 | t3 = Term('actor', subterms=[v1]) | |
12 | ||
13 | self.assertTrue(t1.is_atom()) | |
14 | self.assertFalse(t2.is_atom()) | |
15 | self.assertFalse(v1.is_atom()) | |
16 | self.assertFalse(t3.is_atom()) | |
17 | ||
18 | self.assertTrue(t1.is_ground()) | |
19 | self.assertTrue(t2.is_ground()) | |
20 | self.assertFalse(v1.is_ground()) | |
21 | self.assertFalse(t3.is_ground()) | |
22 | ||
23 | self.assertEqual(t2, Term('actor', subterms=[Term('alice')])) | |
24 | ||
25 | def test_term_replace(self): | |
26 | t = Term('actor', subterms=[Var('?A')]) | |
27 | r = t.replace(Var('?A'), Term('alice')) | |
28 | self.assertEqual(r, Term('actor', subterms=[Term('alice')])) | |
29 | ||
30 | ||
31 | if __name__ == '__main__': | |
32 | unittest.main() |