package jhazm.test; import jhazm.DependencyParser; import jhazm.Lemmatizer; import jhazm.Normalizer; import org.junit.Test; import org.maltparser.concurrent.graph.ConcurrentDependencyGraph; import org.maltparser.core.exception.MaltChainedException; import java.io.IOException; import java.net.MalformedURLException; import java.util.Arrays; import java.util.Iterator; import static org.junit.Assert.assertEquals; /** * * @author Mojtaba Khallash */ public class DependencyParserTest { @Test public void parseTest() throws MalformedURLException, MaltChainedException, IOException { DependencyParser parser = new DependencyParser(); String[] input = new String[] { "1 از _ PREP PREP _ 12 VPP _\t_", "2 نصایح _ N IANM _", "3 باارزش _ ADJ AJP _", "4 مولای _ N ANM _", "5 متقیان _ N ANM _", "6 حضرت _ N ANM _", "7 علی _ N ANM _", "8 ( _ PUNC PUNC _", "9 علیه‌السلام _ N IANM _", "10 ) _ PUNC PUNC _", "11 پند _ N IANM _", "12 بگیرید _ V ACT _", "13 . _ PUNC PUNC _", }; String expected = "1 از _ PREP PREP _ 0 ROOT _ _\n" + "2 نصایح _ N IANM _ 1 POSDEP _ _\n" + "3 باارزش _ ADJ AJP _ 2 MOZ _ _\n" + "4 مولای _ N ANM _ 3 MOZ _ _\n" + "5 متقیان _ N ANM _ 4 MOZ _ _\n" + "6 حضرت _ N ANM _ 5 MOZ _ _\n" + "7 علی _ N ANM _ 6 MOZ _ _\n" + "8 ( _ PUNC PUNC _ 7 MOZ _ _\n" + "9 علیه‌السلام _ N IANM _ 8 POSDEP _ _\n" + "10 ) _ PUNC PUNC _ 9 PUNC _ _\n" + "11 پند _ N IANM _ 7 APP _ _\n" + "12 بگیرید _ V ACT _ 11 POSDEP _ _\n" + "13 . _ PUNC PUNC _ 0 ROOT _ _\n"; ConcurrentDependencyGraph graph = parser.parse(input); String actual = graph.toString(); assertEquals("Failed to stem of '" + input + "'", expected, actual); parser.setNormalizer(new Normalizer()); parser.setLemmatizer(new Lemmatizer()); String inputSentence = "من به مدرسه رفته بودم."; expected = "1 من من PR PR _ 4 SBJ _ _\n" + "2 به به PREP PREP _ 4 VPP _ _\n" + "3 مدرسه مدرسه N N _ 2 POSDEP _ _\n" + "4 رفته بودم رفت#رو V V _ 0 ROOT _ _\n" + "5 . . PUNC PUNC _ 4 PUNC _ _\n"; Iterator<ConcurrentDependencyGraph> iterator = parser.rawParses(Arrays.asList(inputSentence)).iterator(); graph = iterator.next(); actual = graph.toString(); assertEquals("Failed to stem of '" + input + "'", expected, actual); } }