def test_addTwoRemoveOneAndAddThird(self): gr = Grammar() self.assertEqual(gr.add_nonterm(TempClass), [TempClass]) self.assertEqual(gr.add_nonterm(Second), [Second]) self.assertEqual(gr.nonterms_count(), 2) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertEqual(gr.get_nonterm(TempClass), TempClass) self.assertIsNotNone(gr.get_nonterm(Second)) self.assertIsNotNone(gr.nonterm(Second)) self.assertEqual(gr.get_nonterm(Second), Second) self.assertEqual(gr.remove_nonterm(Second), [Second]) self.assertEqual(gr.nonterms_count(), 1) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertEqual(gr.nonterm(TempClass), TempClass) self.assertIsNone(gr.get_nonterm(Second)) self.assertEqual(gr.add_nonterm(Third), [Third]) self.assertEqual(gr.nonterms_count(), 2) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertEqual(gr.get_nonterm(TempClass), TempClass) self.assertFalse(gr.have_nonterm(Second)) self.assertIsNone(gr.nonterm(Second)) self.assertIsNotNone(gr.get_nonterm(Third)) self.assertIsNotNone(gr.nonterm(Third)) self.assertEqual(gr.get_nonterm(Third), Third)
def test_addThreeRemoveTwoInArray(self): gr = Grammar() self.assertEqual(gr.add_nonterm([TempClass, Second, Third]), [TempClass, Second, Third]) self.assertEqual(gr.nonterms_count(), 3) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertEqual(gr.nonterm(TempClass), TempClass) self.assertIsNotNone(gr.get_nonterm(Second)) self.assertIsNotNone(gr.nonterm(Second)) self.assertEqual(gr.nonterm(Second), Second) self.assertIsNotNone(gr.get_nonterm(Third)) self.assertIsNotNone(gr.nonterm(Third)) self.assertEqual(gr.nonterm(Third), Third) self.assertEqual(gr.remove_nonterm([Third, TempClass]), [Third, TempClass]) self.assertEqual(gr.nonterms_count(), 1) self.assertTrue(gr.have_nonterm(Second)) self.assertFalse(gr.have_nonterm(TempClass)) self.assertFalse(gr.have_nonterm(Third)) self.assertEqual(gr.add_nonterm(Third), [Third]) self.assertEqual(gr.nonterms_count(), 2) self.assertIsNotNone(gr.nonterm(Second)) self.assertEqual(gr.nonterm(Second), Second) self.assertIsNotNone(gr.get_nonterm(Second)) self.assertIsNotNone(gr.nonterm(Third)) self.assertEqual(gr.nonterm(Third), Third) self.assertIsNotNone(gr.get_nonterm(Third))
def test_removeTwoInTuple(self): gr = Grammar() gr.add_nonterm([TempClass, Second, Third]) self.assertEqual(gr.nonterms_count(), 3) gr.remove_nonterm((Second, TempClass)) self.assertEqual(gr.nonterms_count(), 1) self.assertFalse(gr.have_nonterm(TempClass)) self.assertTrue(gr.have_nonterm(Third)) self.assertFalse(gr.have_nonterm(Second))
def test_removeAllWithoutParam(self): gr = Grammar() gr.add_nonterm([TempClass, Second, Third]) self.assertEqual(gr.nonterms_count(), 3) gr.remove_nonterm() self.assertEqual(gr.nonterms_count(), 0) self.assertFalse(gr.have_nonterm(TempClass)) self.assertFalse(gr.have_nonterm(Second)) self.assertFalse(gr.have_nonterm(Third))
def test_oneSeparateTwoTuple(self): gr = Grammar() gr.add_nonterm(TempClass) self.assertEqual(gr.nonterms_count(), 1) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertEqual(gr.nonterm(TempClass), TempClass) gr.add_nonterm((Second, Third)) self.assertEqual(gr.nonterms_count(), 3) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertIsNotNone(gr.get_nonterm(Second)) self.assertIsNotNone(gr.nonterm(Second)) self.assertIsNotNone(gr.get_nonterm(Third)) self.assertIsNotNone(gr.nonterm(Third))
def test_add_remove_add_one(self): gr = Grammar() self.assertEqual(gr.nonterms_count(), 0) self.assertFalse(gr.have_nonterm(TempClass)) self.assertIsNone(gr.get_nonterm(TempClass)) self.assertIsNone(gr.nonterm(TempClass)) self.assertEqual(gr.add_nonterm(TempClass), [TempClass]) self.assertEqual(gr.nonterms_count(), 1) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertEqual(gr.nonterm(TempClass), TempClass) self.assertEqual(gr.remove_nonterm(TempClass), [TempClass]) self.assertEqual(gr.nonterms_count(), 0) self.assertFalse(gr.have_nonterm(TempClass)) self.assertIsNone(gr.get_nonterm(TempClass)) self.assertIsNone(gr.nonterm(TempClass))
def test_addInArray(self): gr = Grammar() gr.add_nonterm([Second, TempClass]) self.assertEqual(gr.nonterms_count(), 2) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertEqual(gr.nonterm(TempClass), TempClass) self.assertIsNotNone(gr.get_nonterm(Second)) self.assertIsNotNone(gr.nonterm(Second)) self.assertEqual(gr.nonterm(Second), Second) self.assertIsNone(gr.get_nonterm(Third)) self.assertIsNone(gr.nonterm(Third))
def test_correctAddOne(self): gr = Grammar() self.assertEqual(gr.terms_count(), 0) self.assertFalse(gr.have_nonterm(TempClass)) self.assertIsNone(gr.get_nonterm(TempClass)) self.assertIsNone(gr.nonterm(TempClass)) gr.add_nonterm(TempClass) self.assertEqual(gr.nonterms_count(), 1) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertTrue(issubclass(gr.nonterm(TempClass), TempClass)) self.assertEqual(hash(gr.nonterm(TempClass)), hash(TempClass))
def test_correctAddTwo(self): gr = Grammar() self.assertEqual(gr.nonterms_count(), 0) self.assertIsNone(gr.get_nonterm(TempClass)) self.assertIsNone(gr.nonterm(TempClass)) self.assertIsNone(gr.get_nonterm(Second)) self.assertIsNone(gr.nonterm(Second)) gr.add_nonterm(TempClass) self.assertEqual(gr.nonterms_count(), 1) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertTrue(issubclass(gr.nonterm(TempClass), Nonterminal)) self.assertEqual(gr.nonterm(TempClass), TempClass) self.assertIsNone(gr.get_nonterm(Second)) self.assertIsNone(gr.nonterm(Second)) gr.add_nonterm(Second) self.assertEqual(gr.nonterms_count(), 2) self.assertIsNotNone(gr.get_nonterm(TempClass)) self.assertIsNotNone(gr.nonterm(TempClass)) self.assertTrue(issubclass(gr.nonterm(TempClass), Nonterminal)) self.assertEqual(gr.nonterm(TempClass), TempClass) self.assertIsNotNone(gr.nonterm(Second)) self.assertTrue(issubclass(gr.nonterm(Second), Nonterminal)) self.assertEqual(gr.nonterm(Second), Second)
def test_removeEmptyGrammar(self): gr = Grammar() self.assertEqual(gr.nonterms_count(), 0) gr.remove_nonterm() self.assertEqual(gr.nonterms_count(), 0)
def test_haveNontermEmpty(self): gr = Grammar() self.assertFalse(gr.have_nonterm(TempClass)) self.assertEqual(gr.nonterms_count(), 0)