コード例 #1
0
 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))
コード例 #2
0
 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))
コード例 #3
0
 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))
コード例 #4
0
 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)
コード例 #5
0
 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))
コード例 #6
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))
コード例 #7
0
 def test_shouldAddMoreNonterminals(self):
     g = Grammar(nonterminals=[A, B, C])
     self.assertTrue(g.have_nonterm(A))
     self.assertTrue(g.have_nonterm([A, B, C]))
     self.assertFalse(g.have_nonterm(D))
コード例 #8
0
 def test_shouldAddOneNonterminal(self):
     g = Grammar(nonterminals=[A])
     self.assertTrue(g.have_nonterm(A))
     self.assertFalse(g.have_nonterm(B))
     self.assertFalse(g.have_nonterm([A, B]))
コード例 #9
0
 def test_haveNontermClass(self):
     gr = Grammar()
     gr.add_nonterm(TempClass)
     self.assertTrue(gr.have_nonterm(TempClass))
コード例 #10
0
 def test_haveNontermEmpty(self):
     gr = Grammar()
     self.assertFalse(gr.have_nonterm(TempClass))
     self.assertFalse(gr.have_nonterm(Second))
コード例 #11
0
 def test_invalidHaveInArray(self):
     gr = Grammar()
     with self.assertRaises(NotNonterminalException):
         gr.have_nonterm([TempClass, "asdf"])
コード例 #12
0
 def test_invalidHaveAfterCorrectAdd(self):
     gr = Grammar()
     gr.add_nonterm(TempClass)
     with self.assertRaises(NotNonterminalException):
         gr.have_nonterm("asdf")
コード例 #13
0
 def test_invalidHaveString(self):
     gr = Grammar()
     with self.assertRaises(NotNonterminalException):
         gr.have_nonterm("string")
コード例 #14
0
 def test_invalidHaveNumber(self):
     gr = Grammar()
     with self.assertRaises(NotNonterminalException):
         gr.have_nonterm(0)
コード例 #15
0
 def test_haveNontermEmpty(self):
     gr = Grammar()
     self.assertFalse(gr.have_nonterm(TempClass))
     self.assertEqual(gr.nonterms_count(), 0)