From 95b7f74bad7a6f8f4ce0e6623f57b2b5bd5b6bc4 Mon Sep 17 00:00:00 2001 From: ilor <kailoran@gmail.com> Date: Wed, 9 Mar 2011 09:46:38 +0100 Subject: [PATCH] expand ioann test to check head indices --- libcorpus2/ann/channel.cpp | 18 ++++++++++++++++++ libcorpus2/ann/channel.h | 10 ++++++++++ tests/ioann.cpp | 5 +++++ 3 files changed, 33 insertions(+) diff --git a/libcorpus2/ann/channel.cpp b/libcorpus2/ann/channel.cpp index eae9000..394dbb0 100644 --- a/libcorpus2/ann/channel.cpp +++ b/libcorpus2/ann/channel.cpp @@ -170,6 +170,24 @@ std::string AnnotationChannel::dump_iob() const return ss.str(); } +std::string AnnotationChannel::dump_segments() const +{ + std::stringstream ss; + foreach (int s, segments_) { + ss << s; + } + return ss.str(); +} + +std::string AnnotationChannel::dump_heads() const +{ + std::stringstream ss; + foreach (bool b, heads_) { + ss << (b ? "H" : " "); + } + return ss.str(); +} + void AnnotationChannel::do_counts(int& annotations, int& disjoint, int& unannotated) const { std::set<int> used_sids; diff --git a/libcorpus2/ann/channel.h b/libcorpus2/ann/channel.h index e6765d3..2c3a76f 100644 --- a/libcorpus2/ann/channel.h +++ b/libcorpus2/ann/channel.h @@ -147,6 +147,16 @@ public: */ std::string dump_iob() const; + /** + * Compose a string consisting of all segment indices in order. + */ + std::string dump_segments() const; + + /** + * Compose a string consisting of all head flags in order + */ + std::string dump_heads() const; + void do_counts(int& annotations, int& disjoint, int& unannotated) const; private: diff --git a/tests/ioann.cpp b/tests/ioann.cpp index 04831f8..8f9d380 100644 --- a/tests/ioann.cpp +++ b/tests/ioann.cpp @@ -102,6 +102,9 @@ BOOST_AUTO_TEST_CASE( iobase ) BOOST_REQUIRE(chunk); std::stringstream ss; boost::shared_ptr<Corpus2::TokenWriter> w(Corpus2::TokenWriter::create("xces,flat", ss, tagset)); + //boost::shared_ptr<Corpus2::TokenWriter> wann(Corpus2::TokenWriter::create("ccl", std::cerr, tagset)); + //wann->write_chunk(*chunk); + //wann->finish(); w->write_chunk(*chunk); w->finish(); BOOST_CHECK_EQUAL(ss.str(), swiatopoglad); @@ -113,6 +116,8 @@ BOOST_AUTO_TEST_CASE( iobase ) BOOST_REQUIRE(as->has_channel("cute")); as->get_channel("cute").make_iob_from_segments(); BOOST_CHECK_EQUAL(as->get_channel("cute").dump_iob(), "BIOB"); + BOOST_CHECK_EQUAL(as->get_channel("cute").dump_segments(), "1102"); + BOOST_CHECK_EQUAL(as->get_channel("cute").dump_heads(), " "); Corpus2::Sentence::Ptr cute = Corpus2::create_view(as, "cute"); BOOST_REQUIRE_EQUAL(cute->size(), 3); BOOST_CHECK_EQUAL(cute->tokens()[0]->orth_utf8(), "Uważam,"); -- GitLab