def test_complex2(self): ''' Test that first complex example works ''' c = Comparitor('((a|b) & (c|d)) | (f&q)') self.assertEqual('False: (((a | b) & (c | d)) | (f & q))', str(c)) self.assertFalse(c.check([])) self.assertFalse(c.check(['b', 'f'])) self.assertTrue(c.check(['a', 'd'])) self.assertEqual('True: (((a+ | b+)+ & (c | d+)+)+ | (f+ & q))+', str(c)) return
def test_single_token5(self): ''' Test that a single token and with itself and parenthesis and spacing works ''' c = Comparitor(' ( ( abc) & (abc ) ) ') self.assertEqual('False: (abc & abc)', str(c)) self.assertFalse(c.check([])) self.assertTrue(c.check(['abc'])) self.assertEqual('True: (abc+ & abc+)+', str(c)) self.assertTrue(c.check([])) c.clear() self.assertEqual('False: (abc & abc)', str(c)) self.assertFalse(c.check([])) self.assertFalse(c.check(['ab', 'bd', 'ef'])) self.assertTrue(c.check(['ab', 'bd', 'abc'])) self.assertTrue(c.in_comparison('abc')) self.assertFalse(c.in_comparison('ac')) return
def test_single_token2(self): ''' Test that a single token in parenthesis works ''' c = Comparitor('(abc)') self.assertEqual('False: abc', str(c)) self.assertFalse(c.check([])) self.assertTrue(c.check(['abc'])) self.assertEqual('True: abc+', str(c)) self.assertTrue(c.check([])) c.clear() self.assertEqual('False: abc', str(c)) self.assertFalse(c.check([])) self.assertFalse(c.check(['ab', 'bd', 'ef'])) self.assertTrue(c.check(['ab', 'bd', 'abc'])) self.assertTrue(c.in_comparison('abc')) self.assertFalse(c.in_comparison('ac')) return
def test_complex1(self): ''' Test that first complex example works ''' c = Comparitor('a|b & (c) | b|d&e&f') self.assertEqual('False: ((((a | b) & c) | b | d) & e & f)', str(c)) self.assertFalse(c.check([])) self.assertFalse(c.check(['b'])) self.assertEqual('False: ((((a | b+)+ & c) | b+ | d)+ & e & f)', str(c)) self.assertFalse(c.check(['b'])) self.assertEqual('False: ((((a | b+)+ & c) | b+ | d)+ & e & f)', str(c)) self.assertFalse(c.check(['a'])) self.assertTrue(c.check(['e', 'f'])) self.assertEqual('True: ((((a+ | b+)+ & c) | b+ | d)+ & e+ & f+)+', str(c)) c.clear() self.assertEqual('False: ((((a | b) & c) | b | d) & e & f)', str(c)) self.assertFalse(c.check([])) self.assertTrue(c.check(['d','e','f'])) self.assertEqual('True: ((((a | b) & c) | b | d+)+ & e+ & f+)+', str(c)) self.assertTrue(c.in_comparison('a')) self.assertTrue(c.in_comparison('e')) self.assertFalse(c.in_comparison('k')) return
def test_two_token2(self): ''' Test that a two tokens or works ''' c = Comparitor('a|b') self.assertEqual('False: (a | b)', str(c)) self.assertFalse(c.check([])) self.assertTrue(c.check(['b'])) self.assertEqual('True: (a | b+)+', str(c)) self.assertTrue(c.check(['b'])) self.assertEqual('True: (a | b+)+', str(c)) self.assertTrue(c.check(['a'])) # Not a+ because shortcuts once true self.assertEqual('True: (a | b+)+', str(c)) self.assertTrue(c.check([])) c.clear() self.assertEqual('False: (a | b)', str(c)) self.assertFalse(c.check([])) self.assertTrue(c.check(['a'])) self.assertEqual('True: (a+ | b)+', str(c)) self.assertTrue(c.check(['a'])) self.assertEqual('True: (a+ | b)+', str(c)) self.assertTrue(c.check(['b'])) # Not b+ because shortcuts once true self.assertEqual('True: (a+ | b)+', str(c)) self.assertTrue(c.check([])) c.clear() self.assertEqual('False: (a | b)', str(c)) self.assertFalse(c.check([])) self.assertFalse(c.check(['c', 'd', 'ef'])) self.assertTrue(c.check(['a', 'b'])) self.assertTrue(c.in_comparison('a')) self.assertTrue(c.in_comparison('b')) self.assertFalse(c.in_comparison('c')) return
def test_two_token1(self): ''' Test that a two tokens and works ''' c = Comparitor(' ( ( a) & (b)) ') self.assertEqual('False: (a & b)', str(c)) self.assertFalse(c.check([])) self.assertFalse(c.check(['b'])) self.assertEqual('False: (a & b+)', str(c)) self.assertFalse(c.check(['b'])) self.assertEqual('False: (a & b+)', str(c)) self.assertTrue(c.check(['a'])) self.assertEqual('True: (a+ & b+)+', str(c)) self.assertTrue(c.check([])) c.clear() self.assertEqual('False: (a & b)', str(c)) self.assertFalse(c.check([])) self.assertFalse(c.check(['c', 'd', 'ef'])) self.assertTrue(c.check(['a', 'b'])) self.assertTrue(c.in_comparison('a')) self.assertTrue(c.in_comparison('b')) self.assertFalse(c.in_comparison('c')) return