From fcf19b28860ae7b370b2b92b7b0abeea8f9a3ac1 Mon Sep 17 00:00:00 2001 From: ilor <kailoran@gmail.com> Date: Thu, 12 May 2011 13:48:32 +0200 Subject: [PATCH] Use WCCLFile parsing in data-droven tag rule and match rule tests --- tests/datarule.cpp | 22 ++++++------------- tests/rules-data/match/head/cclmatch1.ccl | 2 ++ tests/rules-data/match/is/cclmatch-is1.ccl | 2 ++ tests/rules-data/match/michal/cclmatch1.ccl | 2 ++ tests/rules-data/match/michal/cclmatch2.ccl | 2 ++ tests/rules-data/match/michal/cclmatch3.ccl | 2 ++ tests/rules-data/match/postcond/cclmatch1.ccl | 2 ++ tests/rules-data/match/postcond/cclmatch2.ccl | 2 ++ .../match/postcond2/cclmatch-none.ccl | 2 ++ .../rules-data/match/postcond2/cclmatch2.ccl | 2 ++ .../rules-data/match/postcond2/cclmatch3.ccl | 2 ++ .../rules-data/match/postcond2/cclmatch4.ccl | 2 ++ .../rules-data/match/postcond2/cclmatch5.ccl | 2 ++ .../rules-data/match/postcond3/cclmatch1.ccl | 2 ++ .../rules-data/match/postcond3/cclmatch2.ccl | 2 ++ tests/rules-data/match/repeat/cclmatch3.ccl | 2 ++ tests/rules-data/match/repeat/cclmatch4.ccl | 2 ++ .../rules-data/match/single_tok/cclmatch1.ccl | 2 ++ tests/rules-data/match/text/cclmatch1.ccl | 2 ++ tests/rules-data/match/text/cclmatch2.ccl | 2 ++ tests/rules-data/match/unmark/cclmatch1.ccl | 2 ++ tests/rules-data/match/unmark/cclmatch2.ccl | 2 ++ tests/rules-data/match/variants/cclmatch1.ccl | 2 ++ tests/rules-data/match/variants/cclmatch2.ccl | 2 ++ 24 files changed, 53 insertions(+), 15 deletions(-) diff --git a/tests/datarule.cpp b/tests/datarule.cpp index 281d913..a768770 100644 --- a/tests/datarule.cpp +++ b/tests/datarule.cpp @@ -165,29 +165,21 @@ void test_one_rule_item_actual(const rule_compare_test& c) std::ifstream is(rf.c_str()); BOOST_REQUIRE(is.good()); + boost::shared_ptr<Wccl::WcclFile> parsed; + parsed = parser.parseWcclFile(is, LIBWCCL_TEST_DATA_DIR); - boost::shared_ptr<Wccl::TagRuleSequence> rules; - boost::shared_ptr<Wccl::MatchRule> matchr; - - std::string fn = c.rule_file.filename(); - if (fn.find("match") == fn.npos) { - rules = parser.parseTagRuleSequence(is); - } else { - matchr = parser.parseMatchRule(is); - } for (size_t i = 0; i < chunk->sentences().size(); ++i) { Corpus2::Sentence::Ptr sentence = chunk->sentences()[i]->clone_shared(); Corpus2::Sentence::Ptr expected_sentence = expected->sentences()[i]; BOOST_REQUIRE_EQUAL(sentence->size(), expected_sentence->size()); - if (rules) { - rules->execute_once(sentence); - } else if (matchr) { + if (parsed->has_tag_rules()) { + parsed->get_tag_rules_ptr()->execute_once(sentence); + } + if (parsed->has_match_rules()) { boost::shared_ptr<Corpus2::AnnotatedSentence> annotated; annotated = boost::dynamic_pointer_cast<Corpus2::AnnotatedSentence>(sentence); BOOST_REQUIRE(annotated); - matchr->apply(annotated); - } else { - BOOST_ERROR("Dark forces"); + parsed->get_match_rules_ptr()->apply_all(annotated); } check_sentences(i, tagset, sentence, expected_sentence); } diff --git a/tests/rules-data/match/head/cclmatch1.ccl b/tests/rules-data/match/head/cclmatch1.ccl index 7c7aa47..1a2448b 100644 --- a/tests/rules-data/match/head/cclmatch1.ccl +++ b/tests/rules-data/match/head/cclmatch1.ccl @@ -1,3 +1,4 @@ +match_rules( apply ( match @@ -11,3 +12,4 @@ apply mark(M, M, :2, "NP") ) ) +) diff --git a/tests/rules-data/match/is/cclmatch-is1.ccl b/tests/rules-data/match/is/cclmatch-is1.ccl index d8fb4b1..105520d 100644 --- a/tests/rules-data/match/is/cclmatch-is1.ccl +++ b/tests/rules-data/match/is/cclmatch-is1.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( is('N_NOM') @@ -6,3 +7,4 @@ apply( mark(M, 'COPY') ) ) +) diff --git a/tests/rules-data/match/michal/cclmatch1.ccl b/tests/rules-data/match/michal/cclmatch1.ccl index d2ea62b..4484d66 100644 --- a/tests/rules-data/match/michal/cclmatch1.ccl +++ b/tests/rules-data/match/michal/cclmatch1.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( regex( base[0], 'wyżyna' ), @@ -14,3 +15,4 @@ apply( ) ) +) diff --git a/tests/rules-data/match/michal/cclmatch2.ccl b/tests/rules-data/match/michal/cclmatch2.ccl index b02d73f..6734330 100644 --- a/tests/rules-data/match/michal/cclmatch2.ccl +++ b/tests/rules-data/match/michal/cclmatch2.ccl @@ -1,3 +1,4 @@ +match_rules( apply( @@ -13,3 +14,4 @@ apply( ) ) +) diff --git a/tests/rules-data/match/michal/cclmatch3.ccl b/tests/rules-data/match/michal/cclmatch3.ccl index 817f1b5..981f6d4 100644 --- a/tests/rules-data/match/michal/cclmatch3.ccl +++ b/tests/rules-data/match/michal/cclmatch3.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( is( 'city_trigger' ), @@ -10,3 +11,4 @@ apply( mark(:2, 'CITY_NAM') ) ) +) diff --git a/tests/rules-data/match/postcond/cclmatch1.ccl b/tests/rules-data/match/postcond/cclmatch1.ccl index 0e56753..c79419d 100644 --- a/tests/rules-data/match/postcond/cclmatch1.ccl +++ b/tests/rules-data/match/postcond/cclmatch1.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( inter( base[0], 'wyżyna' ), @@ -12,3 +13,4 @@ apply( mark(:2, 'Highland') ) ) +) diff --git a/tests/rules-data/match/postcond/cclmatch2.ccl b/tests/rules-data/match/postcond/cclmatch2.ccl index 3f2b455..49d4619 100644 --- a/tests/rules-data/match/postcond/cclmatch2.ccl +++ b/tests/rules-data/match/postcond/cclmatch2.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( inter( base[0], 'wyżyna' ), @@ -12,3 +13,4 @@ apply( mark(:2, 'Highland') ) ) +) diff --git a/tests/rules-data/match/postcond2/cclmatch-none.ccl b/tests/rules-data/match/postcond2/cclmatch-none.ccl index 594b822..0f40aee 100644 --- a/tests/rules-data/match/postcond2/cclmatch-none.ccl +++ b/tests/rules-data/match/postcond2/cclmatch-none.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( is("A") @@ -9,3 +10,4 @@ apply( mark(M, "C") ) ) +) diff --git a/tests/rules-data/match/postcond2/cclmatch2.ccl b/tests/rules-data/match/postcond2/cclmatch2.ccl index 75f7fb4..5bffeca 100644 --- a/tests/rules-data/match/postcond2/cclmatch2.ccl +++ b/tests/rules-data/match/postcond2/cclmatch2.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( is("B") @@ -9,3 +10,4 @@ apply( mark(M, "C") ) ) +) diff --git a/tests/rules-data/match/postcond2/cclmatch3.ccl b/tests/rules-data/match/postcond2/cclmatch3.ccl index d9c9f33..3be90c9 100644 --- a/tests/rules-data/match/postcond2/cclmatch3.ccl +++ b/tests/rules-data/match/postcond2/cclmatch3.ccl @@ -1,5 +1,7 @@ +match_rules( apply( match(repeat(equal(class[0], adj))), cond(ann(M, "B")), actions(mark(M,"C")) ) +) diff --git a/tests/rules-data/match/postcond2/cclmatch4.ccl b/tests/rules-data/match/postcond2/cclmatch4.ccl index 6e68f17..f0f132b 100644 --- a/tests/rules-data/match/postcond2/cclmatch4.ccl +++ b/tests/rules-data/match/postcond2/cclmatch4.ccl @@ -1,5 +1,7 @@ +match_rules( apply( match(repeat(equal(class[0], adj))), cond(annsub(M, "B")), actions(mark(M,"C")) ) +) diff --git a/tests/rules-data/match/postcond2/cclmatch5.ccl b/tests/rules-data/match/postcond2/cclmatch5.ccl index 51ff9f0..03b1f33 100644 --- a/tests/rules-data/match/postcond2/cclmatch5.ccl +++ b/tests/rules-data/match/postcond2/cclmatch5.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( repeat( @@ -12,3 +13,4 @@ apply( //cond(debug(orth[first(M)])), actions(mark(M,"C")) ) +) diff --git a/tests/rules-data/match/postcond3/cclmatch1.ccl b/tests/rules-data/match/postcond3/cclmatch1.ccl index e69473a..02d9939 100644 --- a/tests/rules-data/match/postcond3/cclmatch1.ccl +++ b/tests/rules-data/match/postcond3/cclmatch1.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( optional(repeat(inter(class[0], {adj}))), @@ -10,3 +11,4 @@ apply( mark(M, "NP") ) ) +) diff --git a/tests/rules-data/match/postcond3/cclmatch2.ccl b/tests/rules-data/match/postcond3/cclmatch2.ccl index d8d9560..7e4251c 100644 --- a/tests/rules-data/match/postcond3/cclmatch2.ccl +++ b/tests/rules-data/match/postcond3/cclmatch2.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( optional(repeat(inter(class[0], {adj}))), @@ -10,3 +11,4 @@ apply( mark(M, "NP") ) ) +) diff --git a/tests/rules-data/match/repeat/cclmatch3.ccl b/tests/rules-data/match/repeat/cclmatch3.ccl index 81cf3c6..64479cf 100644 --- a/tests/rules-data/match/repeat/cclmatch3.ccl +++ b/tests/rules-data/match/repeat/cclmatch3.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( optional(repeat(inter(class[0], {adj, pact, ppas}))), @@ -7,3 +8,4 @@ apply( mark(M, 'NP') ) ) +) diff --git a/tests/rules-data/match/repeat/cclmatch4.ccl b/tests/rules-data/match/repeat/cclmatch4.ccl index 68a50fa..908fe7a 100644 --- a/tests/rules-data/match/repeat/cclmatch4.ccl +++ b/tests/rules-data/match/repeat/cclmatch4.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( repeat( @@ -10,3 +11,4 @@ apply( mark(M, 'MultiNP') ) ) +) diff --git a/tests/rules-data/match/single_tok/cclmatch1.ccl b/tests/rules-data/match/single_tok/cclmatch1.ccl index 0ee1075..30cf289 100644 --- a/tests/rules-data/match/single_tok/cclmatch1.ccl +++ b/tests/rules-data/match/single_tok/cclmatch1.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( and( inter(class[0], {subst, ger, depr}), inter(cas[0], {nom}) ) @@ -6,3 +7,4 @@ apply( mark($m:_M, 'N_NOM') ) ) +) diff --git a/tests/rules-data/match/text/cclmatch1.ccl b/tests/rules-data/match/text/cclmatch1.ccl index 9b1ed19..11b2601 100644 --- a/tests/rules-data/match/text/cclmatch1.ccl +++ b/tests/rules-data/match/text/cclmatch1.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( text("Sp. z o.o.") @@ -6,3 +7,4 @@ apply( mark(M, "Co") ) ) +) diff --git a/tests/rules-data/match/text/cclmatch2.ccl b/tests/rules-data/match/text/cclmatch2.ccl index 96885ff..efd2764 100644 --- a/tests/rules-data/match/text/cclmatch2.ccl +++ b/tests/rules-data/match/text/cclmatch2.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( text("Sp."), @@ -10,3 +11,4 @@ apply( mark(:3, "O") ) ) +) diff --git a/tests/rules-data/match/unmark/cclmatch1.ccl b/tests/rules-data/match/unmark/cclmatch1.ccl index 445daca..46448bb 100644 --- a/tests/rules-data/match/unmark/cclmatch1.ccl +++ b/tests/rules-data/match/unmark/cclmatch1.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( optional(equal(class[0], other)), @@ -7,3 +8,4 @@ apply( unmark(M, "A") ) ) +) diff --git a/tests/rules-data/match/unmark/cclmatch2.ccl b/tests/rules-data/match/unmark/cclmatch2.ccl index c81f1a1..6261156 100644 --- a/tests/rules-data/match/unmark/cclmatch2.ccl +++ b/tests/rules-data/match/unmark/cclmatch2.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( optional(equal(class[0], other)), @@ -7,3 +8,4 @@ apply( unmark(M, "B") ) ) +) diff --git a/tests/rules-data/match/variants/cclmatch1.ccl b/tests/rules-data/match/variants/cclmatch1.ccl index 5e4efc1..953c83f 100644 --- a/tests/rules-data/match/variants/cclmatch1.ccl +++ b/tests/rules-data/match/variants/cclmatch1.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( longest( @@ -16,3 +17,4 @@ apply( actions(mark(M, "C")) ) +) diff --git a/tests/rules-data/match/variants/cclmatch2.ccl b/tests/rules-data/match/variants/cclmatch2.ccl index bb5fdaa..ac9021d 100644 --- a/tests/rules-data/match/variants/cclmatch2.ccl +++ b/tests/rules-data/match/variants/cclmatch2.ccl @@ -1,3 +1,4 @@ +match_rules( apply( match( oneof( @@ -16,3 +17,4 @@ apply( actions(mark(M, "C")) ) +) -- GitLab