/** * Copyright 2014, Emory University * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package edu.emory.clir.clearnlp.propbank; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.InputStream; import java.util.List; import org.junit.Test; import edu.emory.clir.clearnlp.constituent.CTNode; import edu.emory.clir.clearnlp.constituent.CTTree; import edu.emory.clir.clearnlp.lexicon.propbank.PBLib; import edu.emory.clir.clearnlp.util.IOUtils; /** * @since 3.0.0 * @author Jinho D. Choi ({@code jinho.choi@emory.edu}) */ public class PBLibTest { @Test public void testGetTreeList() { InputStream treebank = IOUtils.createFileInputStream("src/test/resources/propbank/sample.parse"); InputStream propbank = IOUtils.createFileInputStream("src/test/resources/propbank/sample.prop"); List<CTTree> trees = PBLib.getTreeList(treebank, propbank); CTNode pNode, aNode; CTTree tree; tree = trees.get(0); pNode = tree.getPBHeadList().get(2); assertEquals("25:0", pNode.getPBLocation().toString()); assertEquals("show.02", pNode.getPBRolesetID()); aNode = tree.getNode(22, 1); assertEquals("25-ARG1", aNode.getPBHeads().get(0).toString()); aNode = tree.getNode(23, 1); assertEquals("25-ARG1", aNode.getPBHeads().get(0).toString()); aNode = tree.getNode(24, 1); assertEquals("25-ARG1", aNode.getPBHeads().get(0).toString()); aNode = tree.getNode(26, 1); assertEquals("25-rel", aNode.getPBHeads().get(0).toString()); aNode = tree.getNode(27, 2); assertEquals("25-ARGM-TMP", aNode.getPBHeads().get(0).toString()); tree = trees.get(1); pNode = tree.getPBHeadList().get(1); assertEquals("21:0", pNode.getPBLocation().toString()); assertEquals("be.01", pNode.getPBRolesetID()); aNode = tree.getNode(19, 1); assertEquals("21-ARG1", aNode.getPBHeads().get(0).toString()); aNode = tree.getNode(22, 2); assertEquals("21-ARG2", aNode.getPBHeads().get(0).toString()); aNode = tree.getNode(0, 2); assertEquals("18-ARG1", aNode.getPBHeads().get(0).toString()); aNode = tree.getNode(0, 2); assertEquals("21-ARG1", aNode.getPBHeads().get(1).toString()); } @Test public void testGetNumber() { assertEquals("0", PBLib.getNumber("A0")); assertEquals("A", PBLib.getNumber("AA")); assertEquals("0", PBLib.getNumber("C-A0")); assertEquals("0", PBLib.getNumber("R-A0")); assertEquals("1", PBLib.getNumber("A1-DSP")); assertEquals("0", PBLib.getNumber("ARG0")); assertEquals("A", PBLib.getNumber("ARGA")); assertEquals("1", PBLib.getNumber("ARG1-DSP")); } @Test public void testGetLinkType() { assertEquals("SLC", PBLib.getLinkType("LINK-SLC")); assertEquals(null , PBLib.getLinkType("ARGM-SLC")); } @Test public void testGetModifierType() { assertEquals("TMP", PBLib.getModifierType("ARGM-TMP")); assertEquals(null , PBLib.getModifierType("LINK-TMP")); } @Test public void testIsNumberedArgument() { String label; label = "ARG0"; assertTrue(PBLib.isNumberedArgument(label)); label = "ARGA"; assertTrue(PBLib.isNumberedArgument(label)); label = "ARG1-DSP"; assertTrue(PBLib.isNumberedArgument(label)); label = "ARG"; assertFalse(PBLib.isNumberedArgument(label)); label = "ARGM-LOC"; assertFalse(PBLib.isNumberedArgument(label)); label = "A0"; assertTrue(PBLib.isNumberedArgument(label)); label = "C-A0"; assertTrue(PBLib.isNumberedArgument(label)); label = "R-A0"; assertTrue(PBLib.isNumberedArgument(label)); label = "AA"; assertTrue(PBLib.isNumberedArgument(label)); label = "A1-DSP"; assertTrue(PBLib.isNumberedArgument(label)); label = "AM-LOC"; assertFalse(PBLib.isNumberedArgument(label)); } @Test public void testIsCoreNumberedArgument() { String label; label = "ARG0"; assertTrue(PBLib.isCoreNumberedArgument(label)); label = "ARGA"; assertTrue(PBLib.isCoreNumberedArgument(label)); label = "ARG1-DSP"; assertTrue(PBLib.isCoreNumberedArgument(label)); label = "ARG"; assertFalse(PBLib.isCoreNumberedArgument(label)); label = "ARGM-LOC"; assertFalse(PBLib.isCoreNumberedArgument(label)); label = "A0"; assertTrue(PBLib.isCoreNumberedArgument(label)); label = "AA"; assertTrue(PBLib.isCoreNumberedArgument(label)); label = "A1-DSP"; assertTrue(PBLib.isCoreNumberedArgument(label)); label = "C-A0"; assertFalse(PBLib.isCoreNumberedArgument(label)); label = "R-A0"; assertFalse(PBLib.isCoreNumberedArgument(label)); label = "AM-LOC"; assertFalse(PBLib.isCoreNumberedArgument(label)); } @Test public void testIsModifier() { String label; label = "ARG0"; assertFalse(PBLib.isModifier(label)); label = "ARGA"; assertFalse(PBLib.isModifier(label)); label = "ARG1-DSP"; assertFalse(PBLib.isModifier(label)); label = "ARGM-LOC"; assertTrue(PBLib.isModifier(label)); } }