You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@joshua.apache.org by mj...@apache.org on 2016/09/15 13:31:30 UTC

[04/13] incubator-joshua git commit: Moved regression test decoder/num_translation_options to unit test. Regenerated and split gold output into several files to be used by different test methods.

Moved regression test decoder/num_translation_options to unit test. Regenerated and split gold output into several files to be used by different test methods.


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/9cbc045f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/9cbc045f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/9cbc045f

Branch: refs/heads/master
Commit: 9cbc045fe8b058b3fac028180ad99390b9fbf709
Parents: 3ff30fe
Author: Michael A. Hedderich <mi...@users.noreply.github.com>
Authored: Wed Sep 14 19:45:50 2016 +0200
Committer: Michael A. Hedderich <mi...@users.noreply.github.com>
Committed: Thu Sep 15 14:21:05 2016 +0200

----------------------------------------------------------------------
 .../decoder/cky/NumTranslationOptionsTest.java  | 88 ++++++++++++++++++++
 .../joshua-packed.config                        | 30 +++++++
 .../num_translation_options/joshua.config       |  6 +-
 .../joshua.config.packed                        | 30 -------
 .../output-no-dot-chart.gold                    |  4 +
 .../num_translation_options/output-packed.gold  |  4 +
 .../decoder/num_translation_options/output.gold |  8 --
 .../decoder/num_translation_options/test.sh     | 17 ----
 8 files changed, 129 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/9cbc045f/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.java b/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.java
new file mode 100644
index 0000000..bfb13e1
--- /dev/null
+++ b/src/test/java/org/apache/joshua/decoder/cky/NumTranslationOptionsTest.java
@@ -0,0 +1,88 @@
+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 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.Test;
+
+/**
+ * Tests that num_translation_options is enforced for hierarchical decoders
+ */
+public class NumTranslationOptionsTest {
+  private JoshuaConfiguration joshuaConfig;
+  private Decoder decoder;
+
+  @AfterMethod
+  public void tearDown() throws Exception {
+    if (decoder != null) {
+      decoder.cleanUp();
+      decoder = null;
+    }
+  }
+
+  @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);
+  }
+
+  @Test
+  public void givenInput_whenDecodingWithNumTranslationOptions3AndPacked_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-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);
+  }
+
+  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, ""));
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/9cbc045f/src/test/resources/decoder/num_translation_options/joshua-packed.config
----------------------------------------------------------------------
diff --git a/src/test/resources/decoder/num_translation_options/joshua-packed.config b/src/test/resources/decoder/num_translation_options/joshua-packed.config
new file mode 100644
index 0000000..681c4d9
--- /dev/null
+++ b/src/test/resources/decoder/num_translation_options/joshua-packed.config
@@ -0,0 +1,30 @@
+num_translation_options = 3
+
+lm = kenlm 5 false false 100 src/test/resources/decoder/num_translation_options/lm.gz
+
+tm = thrax pt 12 src/test/resources/decoder/num_translation_options/grammar.packed
+tm = thrax glue -1 src/test/resources/decoder/num_translation_options/glue-grammar
+
+mark_oovs = false
+
+default-non-terminal = X
+goalSymbol = GOAL
+
+#pruning config
+pop-limit = 100
+
+output-format = %c ||| %s ||| %f
+
+#nbest config
+use_unique_nbest = true
+top_n = 5
+
+feature-function = WordPenalty
+feature-function = OOVPenalty
+
+lm_0 1.2373676802179452
+
+tm_pt_0 1
+tm_glue_0 1
+WordPenalty 1
+OOVPenalty 1.0

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/9cbc045f/src/test/resources/decoder/num_translation_options/joshua.config
----------------------------------------------------------------------
diff --git a/src/test/resources/decoder/num_translation_options/joshua.config b/src/test/resources/decoder/num_translation_options/joshua.config
index e37855c..88b0290 100644
--- a/src/test/resources/decoder/num_translation_options/joshua.config
+++ b/src/test/resources/decoder/num_translation_options/joshua.config
@@ -1,9 +1,9 @@
 num_translation_options = 3
 
-lm = kenlm 5 false false 100 lm.gz
+lm = kenlm 5 false false 100 src/test/resources/decoder/num_translation_options/lm.gz
 
-tm = thrax pt 12 grammar.gz
-tm = thrax glue -1 glue-grammar
+tm = thrax pt 12 src/test/resources/decoder/num_translation_options/grammar.gz
+tm = thrax glue -1 src/test/resources/decoder/num_translation_options/glue-grammar
 
 mark_oovs = false
 

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/9cbc045f/src/test/resources/decoder/num_translation_options/joshua.config.packed
----------------------------------------------------------------------
diff --git a/src/test/resources/decoder/num_translation_options/joshua.config.packed b/src/test/resources/decoder/num_translation_options/joshua.config.packed
deleted file mode 100644
index 2d52db2..0000000
--- a/src/test/resources/decoder/num_translation_options/joshua.config.packed
+++ /dev/null
@@ -1,30 +0,0 @@
-num_translation_options = 3
-
-lm = kenlm 5 false false 100 lm.gz
-
-tm = thrax pt 12 grammar.packed
-tm = thrax glue -1 glue-grammar
-
-mark_oovs = false
-
-default-non-terminal = X
-goalSymbol = GOAL
-
-#pruning config
-pop-limit = 100
-
-output-format = %c ||| %s ||| %f
-
-#nbest config
-use_unique_nbest = true
-top_n = 5
-
-feature-function = WordPenalty
-feature-function = OOVPenalty
-
-lm_0 1.2373676802179452
-
-tm_pt_0 1
-tm_glue_0 1
-WordPenalty 1
-OOVPenalty 1.0

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/9cbc045f/src/test/resources/decoder/num_translation_options/output-no-dot-chart.gold
----------------------------------------------------------------------
diff --git a/src/test/resources/decoder/num_translation_options/output-no-dot-chart.gold b/src/test/resources/decoder/num_translation_options/output-no-dot-chart.gold
new file mode 100644
index 0000000..686122c
--- /dev/null
+++ b/src/test/resources/decoder/num_translation_options/output-no-dot-chart.gold
@@ -0,0 +1,4 @@
+-19.196 ||| i like taco bell ||| tm_pt_0=4.000 tm_glue_0=1.000 lm_0=-17.449 WordPenalty=-2.606 OOVPenalty=0.000
+-19.733 ||| i love taco bell ||| tm_pt_0=5.000 tm_glue_0=1.000 lm_0=-18.690 WordPenalty=-2.606 OOVPenalty=0.000
+-22.883 ||| i appreciate taco bell ||| tm_pt_0=3.000 tm_glue_0=1.000 lm_0=-19.620 WordPenalty=-2.606 OOVPenalty=0.000
+-424.954 ||| yo quiero taco bell ||| tm_pt_0=0.000 tm_glue_0=4.000 lm_0=-21.293 WordPenalty=-2.606 OOVPenalty=-400.000

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/9cbc045f/src/test/resources/decoder/num_translation_options/output-packed.gold
----------------------------------------------------------------------
diff --git a/src/test/resources/decoder/num_translation_options/output-packed.gold b/src/test/resources/decoder/num_translation_options/output-packed.gold
new file mode 100644
index 0000000..686122c
--- /dev/null
+++ b/src/test/resources/decoder/num_translation_options/output-packed.gold
@@ -0,0 +1,4 @@
+-19.196 ||| i like taco bell ||| tm_pt_0=4.000 tm_glue_0=1.000 lm_0=-17.449 WordPenalty=-2.606 OOVPenalty=0.000
+-19.733 ||| i love taco bell ||| tm_pt_0=5.000 tm_glue_0=1.000 lm_0=-18.690 WordPenalty=-2.606 OOVPenalty=0.000
+-22.883 ||| i appreciate taco bell ||| tm_pt_0=3.000 tm_glue_0=1.000 lm_0=-19.620 WordPenalty=-2.606 OOVPenalty=0.000
+-424.954 ||| yo quiero taco bell ||| tm_pt_0=0.000 tm_glue_0=4.000 lm_0=-21.293 WordPenalty=-2.606 OOVPenalty=-400.000

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/9cbc045f/src/test/resources/decoder/num_translation_options/output.gold
----------------------------------------------------------------------
diff --git a/src/test/resources/decoder/num_translation_options/output.gold b/src/test/resources/decoder/num_translation_options/output.gold
index 4203822..686122c 100644
--- a/src/test/resources/decoder/num_translation_options/output.gold
+++ b/src/test/resources/decoder/num_translation_options/output.gold
@@ -2,11 +2,3 @@
 -19.733 ||| i love taco bell ||| tm_pt_0=5.000 tm_glue_0=1.000 lm_0=-18.690 WordPenalty=-2.606 OOVPenalty=0.000
 -22.883 ||| i appreciate taco bell ||| tm_pt_0=3.000 tm_glue_0=1.000 lm_0=-19.620 WordPenalty=-2.606 OOVPenalty=0.000
 -424.954 ||| yo quiero taco bell ||| tm_pt_0=0.000 tm_glue_0=4.000 lm_0=-21.293 WordPenalty=-2.606 OOVPenalty=-400.000
--19.196 ||| i like taco bell ||| tm_pt_0=4.000 tm_glue_0=1.000 lm_0=-17.449 WordPenalty=-2.606 OOVPenalty=0.000
--19.733 ||| i love taco bell ||| tm_pt_0=5.000 tm_glue_0=1.000 lm_0=-18.690 WordPenalty=-2.606 OOVPenalty=0.000
--22.883 ||| i appreciate taco bell ||| tm_pt_0=3.000 tm_glue_0=1.000 lm_0=-19.620 WordPenalty=-2.606 OOVPenalty=0.000
--424.954 ||| yo quiero taco bell ||| tm_pt_0=0.000 tm_glue_0=4.000 lm_0=-21.293 WordPenalty=-2.606 OOVPenalty=-400.000
--19.196 ||| i like taco bell ||| tm_pt_0=4.000 tm_glue_0=1.000 lm_0=-17.449 WordPenalty=-2.606 OOVPenalty=0.000
--19.733 ||| i love taco bell ||| tm_pt_0=5.000 tm_glue_0=1.000 lm_0=-18.690 WordPenalty=-2.606 OOVPenalty=0.000
--22.883 ||| i appreciate taco bell ||| tm_pt_0=3.000 tm_glue_0=1.000 lm_0=-19.620 WordPenalty=-2.606 OOVPenalty=0.000
--424.954 ||| yo quiero taco bell ||| tm_pt_0=0.000 tm_glue_0=4.000 lm_0=-21.293 WordPenalty=-2.606 OOVPenalty=-400.000

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/9cbc045f/src/test/resources/decoder/num_translation_options/test.sh
----------------------------------------------------------------------
diff --git a/src/test/resources/decoder/num_translation_options/test.sh b/src/test/resources/decoder/num_translation_options/test.sh
deleted file mode 100755
index e413526..0000000
--- a/src/test/resources/decoder/num_translation_options/test.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-set -u
-
-cat input | $JOSHUA/bin/joshua-decoder -c joshua.config > output 2> log
-cat input | $JOSHUA/bin/joshua-decoder -c joshua.config -no-dot-chart >> output 2>> log
-cat input | $JOSHUA/bin/joshua-decoder -c joshua.config.packed >> output 2>> log
-
-# Compare
-diff -u output output.gold > diff
-
-if [ $? -eq 0 ]; then
-  rm -f diff log output output.scores
-  exit 0
-else
-  exit 1
-fi