Fixed two of the three NumTranslationOptionsTest test cases to work with new configuration. Packed Grammar test fails, probably missing configuration parameter.
Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/d117c177 Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/d117c177 Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/d117c177 Branch: refs/heads/7_confsystem Commit: d117c177d9130281f2b057fd1fdaf7de43c4f3b8 Parents: 89a112a Author: Michael A. Hedderich <michael-al...@users.noreply.github.com> Authored: Sun Sep 18 18:41:57 2016 +0200 Committer: Michael A. Hedderich <michael-al...@users.noreply.github.com> Committed: Sun Sep 18 18:46:02 2016 +0200 ---------------------------------------------------------------------- .../NumTranslationOptionsNoDotChartTest.conf | 28 +++++++ .../NumTranslationOptionsNoDotChartTest.gold | 4 + .../cky/NumTranslationOptionsPackedTest.conf | 27 +++++++ .../cky/NumTranslationOptionsPackedTest.gold | 4 + .../decoder/cky/NumTranslationOptionsTest.conf | 27 +++++++ .../decoder/cky/NumTranslationOptionsTest.gold | 4 + .../decoder/cky/NumTranslationOptionsTest.in | 1 + .../decoder/cky/NumTranslationOptionsTest.java | 83 ++++++-------------- 8 files changed, 118 insertions(+), 60 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/d117c177/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsNoDotChartTest.conf ---------------------------------------------------------------------- diff --git a/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsNoDotChartTest.conf b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsNoDotChartTest.conf new file mode 100644 index 0000000..a80bd4c --- /dev/null +++ b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsNoDotChartTest.conf @@ -0,0 +1,28 @@ +num_translation_options = 3 +mark_oovs = false +default_non_terminal = X +goalSymbol = GOAL +pop_limit = 100 +output_format = %c ||| %s ||| %f +use_unique_nbest = true +top_n = 5 +use_dot_chart = false + +feature_functions = [ + { class = LanguageModel, lm_type = kenlm, lm_order = 5, lm_file = src/test/resources/decoder/num_translation_options/lm.gz } + { class = WordPenalty } + { class = OOVPenalty } +] + +grammars = [ + { class = TextGrammar, owner = pt, span_limit = 12, path = src/test/resources/decoder/num_translation_options/grammar.gz } + { class = TextGrammar, owner = glue, span_limit = -1, path = src/test/resources/decoder/num_translation_options/glue-grammar } +] + +weights = { + OOVPenalty = 1.0 + WordPenalty = 1 + glue_0 = -1 + lm_0 = 1.2373676802179452 + pt_0 = -1 +} http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/d117c177/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsNoDotChartTest.gold ---------------------------------------------------------------------- diff --git a/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsNoDotChartTest.gold b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsNoDotChartTest.gold new file mode 100644 index 0000000..d130edd --- /dev/null +++ b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsNoDotChartTest.gold @@ -0,0 +1,4 @@ +-19.196 ||| i like taco bell ||| pt_0=-4.000000 lm_0=-17.448898 glue_0=-1.000000 WordPenalty=-2.605767 +-19.733 ||| i love taco bell ||| pt_0=-5.000000 lm_0=-18.690487 glue_0=-1.000000 WordPenalty=-2.605767 +-22.883 ||| i appreciate taco bell ||| pt_0=-3.000000 lm_0=-19.620453 glue_0=-1.000000 WordPenalty=-2.605767 +-424.954 ||| yo quiero taco bell ||| lm_0=-21.293470 glue_0=-4.000000 WordPenalty=-2.605767 OOVPenalty=-400.000000 http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/d117c177/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsPackedTest.conf ---------------------------------------------------------------------- diff --git a/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsPackedTest.conf b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsPackedTest.conf new file mode 100644 index 0000000..dc4d6a3 --- /dev/null +++ b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsPackedTest.conf @@ -0,0 +1,27 @@ +num_translation_options = 3 +mark_oovs = false +default_non_terminal = X +goalSymbol = GOAL +pop_limit = 100 +output_format = %c ||| %s ||| %f +use_unique_nbest = true +top_n = 5 + +feature_functions = [ + { class = LanguageModel, lm_type = kenlm, lm_order = 5, lm_file = src/test/resources/decoder/num_translation_options/lm.gz } + { class = WordPenalty } + { class = OOVPenalty } +] + +grammars = [ + { class = PackedGrammar, owner = pt, span_limit = 12, path = src/test/resources/decoder/num_translation_options/grammar.packed } + { class = TextGrammar, owner = glue, span_limit = -1, path = src/test/resources/decoder/num_translation_options/glue-grammar } +] + +weights = { + OOVPenalty = 1.0 + WordPenalty = 1 + glue_0 = -1 + lm_0 = 1.2373676802179452 + pt_0 = -1 +} http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/d117c177/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsPackedTest.gold ---------------------------------------------------------------------- diff --git a/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsPackedTest.gold b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsPackedTest.gold new file mode 100644 index 0000000..d9e97f5 --- /dev/null +++ b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsPackedTest.gold @@ -0,0 +1,4 @@ +-19.196 ||| i like taco bell ||| pt_0=-4.000000 lm_0=-17.448898 glue_0=-1.000000 WordPenalty=-2.605767 +-19.733 ||| i love taco bell ||| pt_0=-5.000000 lm_0=-18.690487 glue_0=-1.000000 WordPenalty=-2.605767 +-22.883 ||| i appreciate taco bell ||| pt_0=-3.000000 lm_0=-19.620453 glue_0=-1.000000 WordPenalty=-2.605767 +-424.954 ||| yo quiero taco bell ||| lm_0=-21.293470 glue_0=-4.000000 WordPenalty=-2.605767 OOVPenalty=-400.000000 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/d117c177/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.conf ---------------------------------------------------------------------- diff --git a/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.conf b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.conf new file mode 100644 index 0000000..a8b8723 --- /dev/null +++ b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.conf @@ -0,0 +1,27 @@ +num_translation_options = 3 +mark_oovs = false +default_non_terminal = X +goalSymbol = GOAL +pop_limit = 100 +output_format = %c ||| %s ||| %f +use_unique_nbest = true +top_n = 5 + +feature_functions = [ + { class = LanguageModel, lm_type = kenlm, lm_order = 5, lm_file = src/test/resources/decoder/num_translation_options/lm.gz } + { class = WordPenalty } + { class = OOVPenalty } +] + +grammars = [ + { class = TextGrammar, owner = pt, span_limit = 12, path = src/test/resources/decoder/num_translation_options/grammar.gz } + { class = TextGrammar, owner = glue, span_limit = -1, path = src/test/resources/decoder/num_translation_options/glue-grammar } +] + +weights = { + OOVPenalty = 1.0 + WordPenalty = 1 + glue_0 = -1 + lm_0 = 1.2373676802179452 + pt_0 = -1 +} http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/d117c177/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.gold ---------------------------------------------------------------------- diff --git a/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.gold b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.gold new file mode 100644 index 0000000..d9e97f5 --- /dev/null +++ b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.gold @@ -0,0 +1,4 @@ +-19.196 ||| i like taco bell ||| pt_0=-4.000000 lm_0=-17.448898 glue_0=-1.000000 WordPenalty=-2.605767 +-19.733 ||| i love taco bell ||| pt_0=-5.000000 lm_0=-18.690487 glue_0=-1.000000 WordPenalty=-2.605767 +-22.883 ||| i appreciate taco bell ||| pt_0=-3.000000 lm_0=-19.620453 glue_0=-1.000000 WordPenalty=-2.605767 +-424.954 ||| yo quiero taco bell ||| lm_0=-21.293470 glue_0=-4.000000 WordPenalty=-2.605767 OOVPenalty=-400.000000 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/d117c177/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.in ---------------------------------------------------------------------- diff --git a/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.in b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.in new file mode 100644 index 0000000..1ef14e5 --- /dev/null +++ b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.in @@ -0,0 +1 @@ +yo quiero taco bell http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/d117c177/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.java ---------------------------------------------------------------------- diff --git a/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.java b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.java index 7038241..66db0ad 100644 --- a/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.java +++ b/joshua-core/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.java @@ -18,23 +18,21 @@ */ package org.apache.joshua.decoder.cky; -import static org.apache.joshua.decoder.cky.TestUtil.decodeList; -import static org.apache.joshua.decoder.cky.TestUtil.loadStringsFromFile; -import static org.testng.Assert.assertEquals; - -import java.util.List; +import static com.typesafe.config.ConfigFactory.parseResources; +import static org.apache.joshua.decoder.cky.TestUtil.decodeAndAssertDecodedOutputEqualsGold; import org.apache.joshua.decoder.Decoder; -import org.apache.joshua.decoder.JoshuaConfiguration; import org.apache.joshua.util.io.KenLmTestUtil; import org.testng.annotations.AfterMethod; +import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import com.typesafe.config.Config; + /** * Tests that num_translation_options is enforced for hierarchical decoders */ public class NumTranslationOptionsTest { - private JoshuaConfiguration joshuaConfig; private Decoder decoder; @AfterMethod @@ -45,62 +43,27 @@ public class NumTranslationOptionsTest { } } - @Test - public void givenInput_whenDecodingWithNumTranslationOptions3_thenScoreAndTranslationCorrect() - throws Exception { - // Given - List<String> inputStrings = loadStringsFromFile( - "src/test/resources/decoder/num_translation_options/input"); - - // When - configureDecoder("src/test/resources/decoder/num_translation_options/joshua.config", true); - List<String> decodedStrings = decodeList(inputStrings, decoder, joshuaConfig); - - // Then - List<String> goldStrings = loadStringsFromFile( - "src/test/resources/decoder/num_translation_options/output.gold"); - assertEquals(decodedStrings, goldStrings); - } - - @Test - public void givenInput_whenDecodingWithNumTranslationOptions3AndNoDotChart_thenScoreAndTranslationCorrect() - throws Exception { - // Given - List<String> inputStrings = loadStringsFromFile( - "src/test/resources/decoder/num_translation_options/input"); - - // When - configureDecoder("src/test/resources/decoder/num_translation_options/joshua.config", false); - List<String> decodedStrings = decodeList(inputStrings, decoder, joshuaConfig); - - // Then - List<String> goldStrings = loadStringsFromFile( - "src/test/resources/decoder/num_translation_options/output-no-dot-chart.gold"); - assertEquals(decodedStrings, goldStrings); + @DataProvider(name = "testFiles") + public Object[][] lmFiles() { + return new Object[][] { + { "NumTranslationOptionsTest.conf", "NumTranslationOptionsTest.in", + "NumTranslationOptionsTest.gold" }, + { "NumTranslationOptionsNoDotChartTest.conf", "NumTranslationOptionsTest.in", + "NumTranslationOptionsNoDotChartTest.gold" }, + { "NumTranslationOptionsPackedTest.conf", "NumTranslationOptionsTest.in", + "NumTranslationOptionsPackedTest.gold" } }; } - @Test - public void givenInput_whenDecodingWithNumTranslationOptions3AndPacked_thenScoreAndTranslationCorrect() - throws Exception { - // Given - List<String> inputStrings = loadStringsFromFile( - "src/test/resources/decoder/num_translation_options/input"); + @Test(dataProvider = "testFiles") + public void givenInput_whenDecodingWithNumTranslationOptions_thenScoreAndTranslationCorrect( + String confFile, String inFile, String goldFile) throws Exception { + String inputPath = this.getClass().getResource(inFile).getFile(); + String goldPath = this.getClass().getResource(goldFile).getFile(); + Config config = parseResources(this.getClass(), confFile) + .withFallback(Decoder.getDefaultFlags()); + KenLmTestUtil.Guard(() -> decoder = new Decoder(config)); - // When - configureDecoder("src/test/resources/decoder/num_translation_options/joshua-packed.config", - true); - List<String> decodedStrings = decodeList(inputStrings, decoder, joshuaConfig); - - // Then - List<String> goldStrings = loadStringsFromFile( - "src/test/resources/decoder/num_translation_options/output-packed.gold"); - assertEquals(decodedStrings, goldStrings); + decodeAndAssertDecodedOutputEqualsGold(inputPath, decoder, goldPath); } - public void configureDecoder(String pathToConfig, boolean useDotChart) throws Exception { - joshuaConfig = new JoshuaConfiguration(); - joshuaConfig.readConfigFile(pathToConfig); - joshuaConfig.use_dot_chart = useDotChart; - KenLmTestUtil.Guard(() -> decoder = new Decoder(joshuaConfig)); - } }