def testOConjuntoFirstDoEpsilonEhOProprioEpsilon(self):
   glc = construirGLCTesteFirst()
   self.assertEqual(set([EPSILON]), glc.obterFirst(EPSILON))
 def testDadoUmNaoTerminalSabeQualNaoEhOSeuConjuntoFirst(self):
   glc = construirGLCTesteFirst()
   firsts = construirTodosFirstDaGLCDoTesteFirst()
   for nao_terminal in firsts:
     firsts[nao_terminal].pop()
     self.assertNotEqual(glc.obterFirst(nao_terminal), firsts[nao_terminal])
 def testDadoUmTerminalSeuConjuntoFirstEhSomenteOTerminal(self):
   glc = construirGLCTesteFirst()
   
   for terminal in glc.obterTerminais():
     self.assertEqual(set([terminal]), glc.obterFirst(terminal))