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_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)
예제 #3
0
 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))
예제 #4
0
 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))
예제 #5
0
 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))
예제 #7
0
 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)
예제 #8
0
 def test_ThreeNonterminalGetNonterm(self):
     gr = Grammar()
     gr.add_nonterm([TempClass, Second, Third])
     s = gr.get_nonterm()
     for i in [Second, Third, TempClass]:
         self.assertIn(i, s)
예제 #9
0
 def test_oneNonterminalGetNonterm(self):
     gr = Grammar()
     gr.add_nonterm(TempClass)
     for i in gr.get_nonterm():
         self.assertEqual(i, TempClass)
예제 #10
0
 def test_invalidGetInArray(self):
     gr = Grammar()
     with self.assertRaises(NotNonterminalException):
         gr.get_nonterm([TempClass, "asdf"])
예제 #11
0
 def test_invalidGetAfterCorrectAdd(self):
     gr = Grammar()
     gr.add_nonterm(TempClass)
     with self.assertRaises(NotNonterminalException):
         gr.get_nonterm("asdf")
예제 #12
0
 def test_invalidGetString(self):
     gr = Grammar()
     with self.assertRaises(NotNonterminalException):
         gr.get_nonterm("string")
예제 #13
0
 def test_invalidGetNumber(self):
     gr = Grammar()
     with self.assertRaises(NotNonterminalException):
         gr.get_nonterm(0)
예제 #14
0
 def test_getNontermEmpty(self):
     gr = Grammar()
     self.assertIsNone(gr.get_nonterm(TempClass))
     self.assertIsNone(gr.nonterm(TempClass))