summaryrefslogtreecommitdiff
path: root/test/test_hypergraph.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_hypergraph.rb')
-rwxr-xr-xtest/test_hypergraph.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/test_hypergraph.rb b/test/test_hypergraph.rb
new file mode 100755
index 0000000..c5add9f
--- /dev/null
+++ b/test/test_hypergraph.rb
@@ -0,0 +1,24 @@
+#!/usr/bin/env ruby
+
+require_relative '../lib/zipf'
+require 'test/unit'
+
+class TestHG < Test::Unit::TestCase
+
+ def test_viterbi
+ semiring = ViterbiSemiring.new
+ hypergraph, nodes_by_label, nodes_by_index = HG::read_hypergraph_from_json('test/hypergraph/hg.json', semiring, true)
+ HG::viterbi hypergraph, nodes_by_label['root'], semiring
+ assert_equal('Goal', nodes_by_index.last.cat)
+ assert_equal(228.95, Math.log(nodes_by_index.last.score).round(2))
+ # do all operations in log space
+ semiring = ViterbiLogSemiring.new
+ hypergraph, nodes_by_label, nodes_by_index = HG::read_hypergraph_from_json('test/hypergraph/hg.json', semiring)
+ HG::viterbi hypergraph, nodes_by_label['root'], semiring
+ assert_equal('Goal', nodes_by_index.last.cat)
+ assert_equal(228.95, nodes_by_index.last.score.round(2))
+ assert_equal hypergraph.nodes.size, 221
+ assert_equal hypergraph.edges.size, 16640
+ end
+end
+