def test_nfa(self): t1,t2,t3,t4,t5,t6,t7,t8,t9 = self.get_input_cases() nfa1 = re.postfix_to_nfa(re.postfix(t1)) nfa2 = re.postfix_to_nfa(re.postfix(t2)) nfa3 = re.postfix_to_nfa(re.postfix(t3)) nfa4 = re.postfix_to_nfa(re.postfix(t4)) nfa5 = re.postfix_to_nfa(re.postfix(t5)) self.assertEquals(len(nfa1.get_accept_states()), 1) self.assertEquals(len(nfa2.get_accept_states()), 2) self.assertEquals(len(nfa3.get_accept_states()), 1) self.assertEquals(len(nfa4.get_accept_states()), 1) self.assertEquals(len(nfa5.get_accept_states()), 1)
def test_postfix(self): t1,t2,t3,t4,t5,t6,t7,t8,t9 = self.get_input_cases() self.assertEquals(re.postfix(t1), "ab&") self.assertEquals(re.postfix(t2), "ab|") self.assertEquals(re.postfix(t3), "ab|a+&") self.assertEquals(re.postfix(t4), "ab|*cd&&") self.assertEquals(re.postfix(t5), "ab|*fo\+&&&") self.assertEquals(re.postfix(t6), "\w\w\s[+*]?[5-9]&&&&") self.assertEquals(re.postfix(t7), "ab|+@vic\\.ca&com&&|&&&&&&") self.assertEquals(re.postfix(t8), "abc&&def&&+&") self.assertEquals(re.postfix(t9), "^ab&{3,5}$&&")