Skip to content
Snippets Groups Projects
Commit 15b4f0d6 authored by ilor's avatar ilor
Browse files

GetSymbols tests

parent 6377c41d
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,7 @@ add_executable(tests
constant.cpp
context.cpp
getlemmas.cpp
getsymbols.cpp
getorth.cpp
logicalpredicates.cpp
main.cpp
......
#include <boost/test/unit_test.hpp>
#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
#include <libcorpus2/sentence.h>
#include <libcorpus2/tagsetmanager.h>
#include <libwccl/ops/functions/constant.h>
#include <libwccl/ops/functions/tset/getsymbols.h>
using namespace Wccl;
BOOST_AUTO_TEST_SUITE(get_symbols_op)
struct SymbolsFix
{
SymbolsFix()
: s(boost::make_shared<Corpus2::Sentence>()),
sc(s),
tagset(Corpus2::get_named_tagset("kipi")),
cx(sc, boost::make_shared<Variables>()),
pos_zero(0),
nowhere(Position::Nowhere),
pos_zero_constant(new Constant<Position>(pos_zero)),
nowhere_constant(new Constant<Position>(nowhere))
{
Corpus2::Token* the_token = new Corpus2::Token(
"One",
PwrNlp::Whitespace::ManySpaces);
Corpus2::Lexeme l1("aaa", tagset.parse_simple_tag("subst:sg:nom:m1", false));
Corpus2::Lexeme l2("aaa", tagset.parse_simple_tag("subst:sg:nom:m2", false));
the_token->add_lexeme(l1);
the_token->add_lexeme(l2);
s->append(the_token);
Corpus2::Token* another_token = new Corpus2::Token(
"Two",
PwrNlp::Whitespace::ManySpaces);
Corpus2::Lexeme l3("aaa", tagset.parse_simple_tag("subst:pl:dat:f", false));
Corpus2::Lexeme l4("aaa", tagset.parse_simple_tag("prep:nom:wok", false));
Corpus2::Lexeme l5("aaa", tagset.parse_simple_tag("adja", false));
another_token->add_lexeme(l3);
another_token->add_lexeme(l4);
another_token->add_lexeme(l5);
s->append(another_token);
gnd = tagset.parse_symbol("gnd");
nmb = tagset.parse_symbol("nmb");
vcl = tagset.parse_symbol("vcl");
pos.set_pos(Corpus2::make_full_mask());
}
boost::shared_ptr<Corpus2::Sentence> s;
SentenceContext sc;
const Corpus2::Tagset& tagset;
FunExecContext cx;
Position pos_zero;
Position nowhere;
boost::shared_ptr<Function<Position> > pos_zero_constant;
boost::shared_ptr<Function<Position> > nowhere_constant;
TSet empty;
Corpus2::Tag gnd;
Corpus2::Tag nmb;
Corpus2::Tag vcl;
Corpus2::Tag pos;
};
BOOST_FIXTURE_TEST_CASE(symbols_nowhere, SymbolsFix)
{
GetSymbols symbols(nowhere_constant, gnd);
BOOST_CHECK(symbols.apply(cx)->equals(empty));
GetSymbols s2(nowhere_constant, nmb);
BOOST_CHECK(s2.apply(cx)->equals(empty));
GetSymbols s3(nowhere_constant, pos);
BOOST_CHECK(s3.apply(cx)->equals(empty));
}
BOOST_FIXTURE_TEST_CASE(get_gnd, SymbolsFix)
{
GetSymbols symbols(pos_zero_constant, gnd);
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{m1,m2}");
sc.advance();
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{f}");
sc.advance();
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{}");
}
BOOST_FIXTURE_TEST_CASE(get_nmb, SymbolsFix)
{
GetSymbols symbols(pos_zero_constant, nmb);
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{sg}");
sc.advance();
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{pl}");
sc.advance();
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{}");
}
BOOST_FIXTURE_TEST_CASE(get_vcl, SymbolsFix)
{
GetSymbols symbols(pos_zero_constant, vcl);
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{}");
sc.advance();
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{wok}");
sc.advance();
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{}");
}
BOOST_FIXTURE_TEST_CASE(get_pos, SymbolsFix)
{
GetSymbols symbols(pos_zero_constant, pos);
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{subst}");
sc.advance();
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{adja,prep,subst}");
sc.advance();
BOOST_CHECK_EQUAL(symbols.apply(cx)->to_string(tagset), "{}");
}
BOOST_AUTO_TEST_SUITE_END()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment