From 94b97137f3a5468ebfeb33cb10dcfb9a3d90e920 Mon Sep 17 00:00:00 2001
From: ilor <kailoran@gmail.com>
Date: Mon, 6 Dec 2010 10:51:46 +0100
Subject: [PATCH] Add sample sentence-based data tests and position support

---
 tests/data/sentence.ccl |  11 +++
 tests/data/t01.xml      | 168 ++++++++++++++++++++++++++++++++++++++++
 tests/datadriven.cpp    |   7 +-
 3 files changed, 185 insertions(+), 1 deletion(-)
 create mode 100644 tests/data/sentence.ccl
 create mode 100644 tests/data/t01.xml

diff --git a/tests/data/sentence.ccl b/tests/data/sentence.ccl
new file mode 100644
index 0000000..ab8fe6a
--- /dev/null
+++ b/tests/data/sentence.ccl
@@ -0,0 +1,11 @@
+sentence=t01.xml
+---
+orth[0]
+
+["Uważam"]
+---
+position=2
+orth[0]
+
+["że"]
+
diff --git a/tests/data/t01.xml b/tests/data/t01.xml
new file mode 100644
index 0000000..3c7bc4f
--- /dev/null
+++ b/tests/data/t01.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna version="1.0" type="lex disamb">
+<chunkList>
+<chunk id="ch51" type="tok">
+<chunk type="s">
+<tok>
+<orth>Uważam</orth>
+<lex disamb="1"><base>uważać</base><ctag>fin:sg:pri:imperf</ctag></lex>
+</tok>
+<ns/>
+<tok>
+<orth>,</orth>
+<lex disamb="1"><base>,</base><ctag>interp</ctag></lex>
+</tok>
+<tok>
+<orth>że</orth>
+<lex disamb="1"><base>że</base><ctag>conj</ctag></lex>
+</tok>
+<tok>
+<orth>światopogląd</orth>
+<lex><base>światopogląd</base><ctag>subst:sg:acc:m3</ctag></lex>
+<lex disamb="1"><base>światopogląd</base><ctag>subst:sg:nom:m3</ctag></lex>
+</tok>
+<tok>
+<orth>może</orth>
+<lex><base>może</base><ctag>qub</ctag></lex>
+<lex disamb="1"><base>móc</base><ctag>fin:sg:ter:imperf</ctag></lex>
+</tok>
+<tok>
+<orth>być</orth>
+<lex disamb="1"><base>być</base><ctag>inf:imperf</ctag></lex>
+</tok>
+<tok>
+<orth>materialistyczny</orth>
+<lex><base>materialistyczny</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
+<lex><base>materialistyczny</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
+<lex><base>materialistyczny</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
+<lex disamb="1"><base>materialistyczny</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
+</tok>
+<tok>
+<orth>lub</orth>
+<lex disamb="1"><base>lub</base><ctag>conj</ctag></lex>
+<lex><base>lubić</base><ctag>impt:sg:sec:imperf</ctag></lex>
+</tok>
+<tok>
+<orth>idealistyczny</orth>
+<lex><base>idealistyczny</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
+<lex><base>idealistyczny</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
+<lex><base>idealistyczny</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
+<lex disamb="1"><base>idealistyczny</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
+</tok>
+<tok>
+<orth>(</orth>
+<lex disamb="1"><base>(</base><ctag>interp</ctag></lex>
+</tok>
+<ns/>
+<tok>
+<orth>w</orth>
+<lex><base>w</base><ctag>prep:acc:nwok</ctag></lex>
+<lex disamb="1"><base>w</base><ctag>prep:loc:nwok</ctag></lex>
+</tok>
+<tok>
+<orth>prymitywnych</orth>
+<lex><base>prymitywny</base><ctag>adj:pl:acc:m1:pos</ctag></lex>
+<lex><base>prymitywny</base><ctag>adj:pl:gen:f:pos</ctag></lex>
+<lex><base>prymitywny</base><ctag>adj:pl:gen:m1:pos</ctag></lex>
+<lex><base>prymitywny</base><ctag>adj:pl:gen:m2:pos</ctag></lex>
+<lex><base>prymitywny</base><ctag>adj:pl:gen:m3:pos</ctag></lex>
+<lex><base>prymitywny</base><ctag>adj:pl:gen:n:pos</ctag></lex>
+<lex disamb="1"><base>prymitywny</base><ctag>adj:pl:loc:f:pos</ctag></lex>
+<lex><base>prymitywny</base><ctag>adj:pl:loc:m1:pos</ctag></lex>
+<lex><base>prymitywny</base><ctag>adj:pl:loc:m2:pos</ctag></lex>
+<lex><base>prymitywny</base><ctag>adj:pl:loc:m3:pos</ctag></lex>
+<lex><base>prymitywny</base><ctag>adj:pl:loc:n:pos</ctag></lex>
+</tok>
+<tok>
+<orth>cywilizacjach</orth>
+<lex disamb="1"><base>cywilizacja</base><ctag>subst:pl:loc:f</ctag></lex>
+</tok>
+<tok>
+<orth>nawet</orth>
+<lex disamb="1"><base>nawet</base><ctag>qub</ctag></lex>
+</tok>
+<tok>
+<orth>magiczny</orth>
+<lex><base>magiczny</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
+<lex><base>magiczny</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
+<lex><base>magiczny</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
+<lex disamb="1"><base>magiczny</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
+</tok>
+<ns/>
+<tok>
+<orth>)</orth>
+<lex disamb="1"><base>)</base><ctag>interp</ctag></lex>
+</tok>
+<ns/>
+<tok>
+<orth>,</orth>
+<lex disamb="1"><base>,</base><ctag>interp</ctag></lex>
+</tok>
+<tok>
+<orth>ale</orth>
+<lex disamb="1"><base>ale</base><ctag>conj</ctag></lex>
+</tok>
+<tok>
+<orth>nie</orth>
+<lex disamb="1"><base>nie</base><ctag>qub</ctag></lex>
+<lex><base>on</base><ctag>ppron3:pl:acc:f:ter:praep</ctag></lex>
+<lex><base>on</base><ctag>ppron3:pl:acc:m2:ter:praep</ctag></lex>
+<lex><base>on</base><ctag>ppron3:pl:acc:m3:ter:praep</ctag></lex>
+<lex><base>on</base><ctag>ppron3:pl:acc:n:ter:praep</ctag></lex>
+<lex><base>on</base><ctag>ppron3:sg:acc:n:ter:praep</ctag></lex>
+</tok>
+<tok>
+<orth>morski</orth>
+<lex><base>morski</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
+<lex><base>morski</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
+<lex><base>morski</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
+<lex disamb="1"><base>morski</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
+</tok>
+<ns/>
+<tok>
+<orth>,</orth>
+<lex disamb="1"><base>,</base><ctag>interp</ctag></lex>
+</tok>
+<tok>
+<orth>lotniczy</orth>
+<lex><base>lotniczy</base><ctag>adj:pl:nom:m1:pos</ctag></lex>
+<lex><base>lotniczy</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
+<lex><base>lotniczy</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
+<lex><base>lotniczy</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
+<lex disamb="1"><base>lotniczy</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
+</tok>
+<ns/>
+<tok>
+<orth>,</orth>
+<lex disamb="1"><base>,</base><ctag>interp</ctag></lex>
+</tok>
+<tok>
+<orth>rolny</orth>
+<lex><base>rolny</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
+<lex><base>rolny</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
+<lex><base>rolny</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
+<lex disamb="1"><base>rolny</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
+</tok>
+<tok>
+<orth>czy</orth>
+<lex disamb="1"><base>czy</base><ctag>conj</ctag></lex>
+<lex><base>czy</base><ctag>qub</ctag></lex>
+</tok>
+<tok>
+<orth>leśny</orth>
+<lex><base>leśny</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
+<lex><base>leśny</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
+<lex><base>leśny</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
+<lex disamb="1"><base>leśny</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
+</tok>
+<ns/>
+<tok>
+<orth>.</orth>
+<lex disamb="1"><base>.</base><ctag>interp</ctag></lex>
+</tok>
+</chunk>
+</chunk>
+</chunkList>
+</cesAna>
+
diff --git a/tests/datadriven.cpp b/tests/datadriven.cpp
index fe8eced..5b62d31 100644
--- a/tests/datadriven.cpp
+++ b/tests/datadriven.cpp
@@ -101,7 +101,12 @@ void test_one_item_actual(const compare_test& c)
 			std::getline(ifs_in, line);
 			BOOST_REQUIRE(line == "---" || line == "");
 		} else {
-			operator_string += line + "\n";
+			if (operator_string.empty() && line.substr(0, 9) == "position=") {
+				std::string new_position = line.substr(9);
+				sc.set_position(atoi(new_position.c_str()));
+			} else {
+				operator_string += line + "\n";
+			}
 		}
 	}
 }
-- 
GitLab