package pl.edu.amu.wmi.daut.re; import java.util.Vector; import java.util.List; import junit.framework.TestCase; /** * Test klasy Grammar. */ public class TestGrammar extends TestCase { /** * Test sprawdzający działanie wszystkich metod klasy. */ public final void testGrammar() { GrammarNonterminalSymbol nonterminal = new GrammarNonterminalSymbol('S'); GrammarSymbol symbol = new GrammarTerminalSymbol('a'); GrammarRule rule = new GrammarRule(nonterminal, symbol, nonterminal); GrammarRule rule1 = new GrammarRule(nonterminal, symbol); List<GrammarRule> rules = new Vector<GrammarRule>(); rules.add(rule); rules.add(rule1); Grammar gr = new Grammar(nonterminal); Grammar gr1 = new Grammar(rules, nonterminal); gr.addRule(rule); gr.addRule(rule1); assertFalse(gr1.allRules().isEmpty()); assertTrue(gr.allRules().containsAll(rules)); assertTrue(gr1.allRules().containsAll(gr.allRules())); assertEquals(2, gr.allRules().size()); assertEquals(gr.getStartSymbol(), gr1.getStartSymbol()); assertEquals(nonterminal, gr.getStartSymbol()); } }