package edu.stanford.nlp.parser.shiftreduce;
import junit.framework.TestCase;
import java.util.Arrays;
import java.util.List;
import edu.stanford.nlp.ling.SentenceUtils;
import edu.stanford.nlp.ling.TaggedWord;
public class ShiftReduceUtilsTest extends TestCase {
public void testBinarySide() {
String[] words = { "This", "is", "a", "short", "test", "." };
String[] tags = { "DT", "VBZ", "DT", "JJ", "NN", "." };
assertEquals(words.length, tags.length);
List<TaggedWord> sentence = SentenceUtils.toTaggedList(Arrays.asList(words), Arrays.asList(tags));
State state = ShiftReduceParser.initialStateFromTaggedSentence(sentence);
ShiftTransition shift = new ShiftTransition();
state = shift.apply(shift.apply(state));
BinaryTransition transition = new BinaryTransition("NP", BinaryTransition.Side.RIGHT);
State next = transition.apply(state);
assertEquals(BinaryTransition.Side.RIGHT, ShiftReduceUtils.getBinarySide(next.stack.peek()));
transition = new BinaryTransition("NP", BinaryTransition.Side.LEFT);
next = transition.apply(state);
assertEquals(BinaryTransition.Side.LEFT, ShiftReduceUtils.getBinarySide(next.stack.peek()));
}
}