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.parsing.grammars.ProbCNFGrammar;
import aima.core.nlp.parsing.grammars.Rule;
/**
* Test the class representing the Chomsky Normal Form grammar
* @author Jonathon
*
*/
public class ProbCNFGrammarTest {
ProbCNFGrammar gEmpty;
Rule validR; Rule invalidR;
@Before
public void setUp() {
gEmpty = new ProbCNFGrammar();
validR = new Rule( new ArrayList<String>(Arrays.asList("A")),
new ArrayList<String>(Arrays.asList("Y","X")),(float)0.50);
invalidR = new Rule( new ArrayList<String>(Arrays.asList("A")),
new ArrayList<String>(Arrays.asList("Y","X","Z")),(float)0.50); // too many RHS variables
}
@Test
public void testAddValidRule() {
assertTrue(gEmpty.addRule(validR));
}
@Test
public void testAddInvalidRule() {
assertFalse(gEmpty.addRule(invalidR));
}
@Test
public void testValidRule() {
assertTrue( gEmpty.validRule(validR));
assertFalse( gEmpty.validRule(invalidR));
}
}