package aima.test.core.unit.nlp.parse; import static org.junit.Assert.*; import java.util.ArrayList; import java.util.Arrays; import org.junit.Before; import org.junit.Test; import aima.core.nlp.data.grammars.ProbContextFreeExamples; import aima.core.nlp.parsing.grammars.ProbUnrestrictedGrammar; import aima.core.nlp.parsing.grammars.Rule; public class ProbContextFreeGrammarTest { ProbUnrestrictedGrammar g; ProbUnrestrictedGrammar cfG; @Before public void setup() { g = new ProbUnrestrictedGrammar(); cfG = ProbContextFreeExamples.buildWumpusGrammar(); } @Test public void testValidRule() { // This rule is a valid Context-Free rule Rule validR = new Rule( new ArrayList<String>(Arrays.asList("W")), new ArrayList<String>(Arrays.asList("a","s")), (float)0.5); // This rule is of correct form but not a context-free rule Rule invalidR = new Rule( new ArrayList<String>(Arrays.asList("W","A")), null , (float)0.5); assertFalse( cfG.validRule(invalidR)); assertTrue( cfG.validRule(validR)); } }