summaryrefslogtreecommitdiff
path: root/tests/tools
diff options
context:
space:
mode:
authorredpony <redpony@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-06-22 05:12:27 +0000
committerredpony <redpony@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-06-22 05:12:27 +0000
commit0172721855098ca02b207231a654dffa5e4eb1c9 (patch)
tree8069c3a62e2d72bd64a2cdeee9724b2679c8a56b /tests/tools
parent37728b8be4d0b3df9da81fdda2198ff55b4b2d91 (diff)
initial checkin
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@2 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'tests/tools')
-rwxr-xr-xtests/tools/compare-statistics.pl49
-rwxr-xr-xtests/tools/filter-stderr.pl30
2 files changed, 79 insertions, 0 deletions
diff --git a/tests/tools/compare-statistics.pl b/tests/tools/compare-statistics.pl
new file mode 100755
index 00000000..3122c534
--- /dev/null
+++ b/tests/tools/compare-statistics.pl
@@ -0,0 +1,49 @@
+#!/usr/bin/perl -w
+use strict;
+
+die "Usage: $0 gold.statistics < test.statistics\n" unless scalar @ARGV == 1;
+
+my $gold_file = shift @ARGV;
+open G, "<$gold_file" or die "Can't read $gold_file: $!";
+my @gold_keys = ();
+my @gold_vals = ();
+while(<G>) {
+ chomp;
+ if (/^([^ ]+)\s*(.*)$/) {
+ push @gold_keys, $1;
+ push @gold_vals, $2;
+ } else {
+ die "Unexpected line in $gold_file: $_\n";
+ }
+}
+
+my $sc = 0;
+my $MATCH = 0;
+my $MISMATCH = 0;
+while(<>) {
+ my $gold_key = $gold_keys[$sc];
+ my $gold_val = $gold_vals[$sc];
+ $sc++;
+ if (/^([^ ]+)\s*(.*)$/) {
+ my $test_key = $1;
+ my $test_val = $2;
+ if ($test_key ne $gold_key) {
+ die "Missing key in output! Expected '$gold_key' but got '$test_key'\n";
+ }
+ if ($gold_val ne 'IGNORE') {
+ if ($gold_val eq $test_val) { $MATCH++; } else {
+ $MISMATCH++;
+ print STDERR "[VALUE FAILURE] key: '$gold_key'\n expected value: '$gold_val'\n actual value: '$test_val'\n";
+ }
+ }
+ } else {
+ die "Unexpected line in test data: $_\n";
+ }
+}
+
+my $TOT = $MISMATCH + $MATCH;
+
+print "$MATCH $TOT\n";
+
+if ($MISMATCH > 0) { exit 1; } else { exit 0; }
+
diff --git a/tests/tools/filter-stderr.pl b/tests/tools/filter-stderr.pl
new file mode 100755
index 00000000..29a97298
--- /dev/null
+++ b/tests/tools/filter-stderr.pl
@@ -0,0 +1,30 @@
+#!/usr/bin/perl -w
+use strict;
+
+my $REAL = '(\+|-)?[1-9][0-9]*(\.[0-9]*)?|(\+|-)?[1-9]\.[0-9]*e(\+|-)?[0-9]+';
+
+while(<>) {
+if (/-LM forest\s+\(nodes\/edges\): (\d+)\/(\d+)/) { print "-lm_nodes $1\n-lm_edges $2\n"; }
+if (/-LM forest\s+\(paths\): (.+)$/) { print "-lm_paths $1\n"; }
+# -LM Viterbi: -12.7893
+if (/-LM\s+Viterbi:\s+($REAL)/) {
+ print "-lm_viterbi $1\n";
+} elsif (/-LM\s+Viterbi:\s+(.+)$/) {
+ # -LM Viterbi: australia is have diplomatic relations with north korea one of the few countries .
+ print "-lm_trans $1\n";
+}
+#Constr. forest (nodes/edges): 111/305
+#Constr. forest (paths): 9899
+if (/Constr\. forest\s+\(nodes\/edges\): (\d+)\/(\d+)/) { print "constr_nodes $1\nconstr_edges $2\n"; }
+if (/Constr\. forest\s+\(paths\): (.+)$/) { print "constr_paths $1\n"; }
+
+if (/\+LM forest\s+\(nodes\/edges\): (\d+)\/(\d+)/) { print "+lm_nodes $1\n+lm_edges $2\n"; }
+if (/\+LM forest\s+\(paths\): (.+)$/) { print "+lm_paths $1\n"; }
+if (/\+LM\s+Viterbi:\s+($REAL)/) {
+ print "+lm_viterbi $1\n";
+} elsif (/\+LM\s+Viterbi:\s+(.+)$/) {
+ # -LM Viterbi: australia is have diplomatic relations with north korea one of the few countries .
+ print "+lm_trans $1\n";
+}
+
+}