From 2e89b53b95da38c2740cabf5e5c07fc4e1ad71aa Mon Sep 17 00:00:00 2001
From: Adam Radziszewski <adam.radziszewski@pwr.wroc.pl>
Date: Wed, 27 Apr 2011 13:43:34 +0200
Subject: [PATCH] resturcture rules-data dir

---
 tests/rules-data/tag/manyrules/agr.xml        |  40 +++++
 tests/rules-data/tag/manyrules/prep-agr.ccl   |  31 ++++
 .../rules-data/tag/manyrules/prep-agr.out.xml |  22 +++
 tests/rules-data/tag/relabel-enc/enc.ccl      |   7 +
 tests/rules-data/tag/relabel-enc/enc.out.xml  |  43 +++++
 tests/rules-data/tag/relabel-enc/suger.xml    |  43 +++++
 tests/rules-data/tag/select/psykoty.xml       |  53 ++++++
 tests/rules-data/tag/select/sel_agr.ccl       |  23 +++
 tests/rules-data/tag/select/sel_agr.out.xml   |  44 +++++
 tests/rules-data/tag/select/seln.ccl          |   7 +
 tests/rules-data/tag/select/seln.out.xml      |  35 ++++
 tests/rules-data/tag/select/seln1.ccl         |   9 +
 tests/rules-data/tag/select/seln1.out.xml     |  44 +++++
 tests/rules-data/tag/unify/agreed.ccl         |   9 +
 tests/rules-data/tag/unify/agreed.out.xml     |  51 ++++++
 tests/rules-data/tag/unify/kobieta.xml        |  72 ++++++++
 tests/rules-data/tag/unify2/agr.ccl           |   5 +
 tests/rules-data/tag/unify2/agr.out.xml       |  34 ++++
 tests/rules-data/tag/unify2/in.xml            |  47 +++++
 tests/rules-data/tag/zero/rule.ccl            |   8 +
 tests/rules-data/tag/zero/rule.out.xml        | 167 +++++++++++++++++
 tests/rules-data/tag/zero/t01.xml             | 168 ++++++++++++++++++
 22 files changed, 962 insertions(+)
 create mode 100644 tests/rules-data/tag/manyrules/agr.xml
 create mode 100644 tests/rules-data/tag/manyrules/prep-agr.ccl
 create mode 100644 tests/rules-data/tag/manyrules/prep-agr.out.xml
 create mode 100644 tests/rules-data/tag/relabel-enc/enc.ccl
 create mode 100644 tests/rules-data/tag/relabel-enc/enc.out.xml
 create mode 100644 tests/rules-data/tag/relabel-enc/suger.xml
 create mode 100644 tests/rules-data/tag/select/psykoty.xml
 create mode 100644 tests/rules-data/tag/select/sel_agr.ccl
 create mode 100644 tests/rules-data/tag/select/sel_agr.out.xml
 create mode 100644 tests/rules-data/tag/select/seln.ccl
 create mode 100644 tests/rules-data/tag/select/seln.out.xml
 create mode 100644 tests/rules-data/tag/select/seln1.ccl
 create mode 100644 tests/rules-data/tag/select/seln1.out.xml
 create mode 100644 tests/rules-data/tag/unify/agreed.ccl
 create mode 100644 tests/rules-data/tag/unify/agreed.out.xml
 create mode 100644 tests/rules-data/tag/unify/kobieta.xml
 create mode 100644 tests/rules-data/tag/unify2/agr.ccl
 create mode 100644 tests/rules-data/tag/unify2/agr.out.xml
 create mode 100644 tests/rules-data/tag/unify2/in.xml
 create mode 100644 tests/rules-data/tag/zero/rule.ccl
 create mode 100644 tests/rules-data/tag/zero/rule.out.xml
 create mode 100644 tests/rules-data/tag/zero/t01.xml

diff --git a/tests/rules-data/tag/manyrules/agr.xml b/tests/rules-data/tag/manyrules/agr.xml
new file mode 100644
index 0000000..b851521
--- /dev/null
+++ b/tests/rules-data/tag/manyrules/agr.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Na</orth>
+    <lex><base>na</base><ctag>prep:acc</ctag></lex>
+    <lex><base>na</base><ctag>prep:loc</ctag></lex>
+   </tok>
+   <tok>
+    <orth>starym</orth>
+    <lex><base>stara</base><ctag>subst:pl:dat:f</ctag></lex>
+    <lex><base>stary</base><ctag>adj:pl:dat:f:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:pl:dat:m1:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:pl:dat:m2:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:pl:dat:m3:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:pl:dat:n:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:sg:inst:m1:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:sg:inst:m2:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:sg:inst:m3:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:sg:inst:n:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:sg:loc:m1:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:sg:loc:m2:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:sg:loc:m3:pos</ctag></lex>
+    <lex><base>stary</base><ctag>adj:sg:loc:n:pos</ctag></lex>
+   </tok>
+   <tok>
+    <orth>stole</orth>
+    <lex><base>stola</base><ctag>subst:pl:acc:f</ctag></lex>
+    <lex><base>stola</base><ctag>subst:pl:nom:f</ctag></lex>
+    <lex><base>stola</base><ctag>subst:pl:voc:f</ctag></lex>
+    <lex><base>stół</base><ctag>subst:sg:loc:m3</ctag></lex>
+    <lex><base>stół</base><ctag>subst:sg:voc:m3</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/manyrules/prep-agr.ccl b/tests/rules-data/tag/manyrules/prep-agr.ccl
new file mode 100644
index 0000000..a3d7f9c
--- /dev/null
+++ b/tests/rules-data/tag/manyrules/prep-agr.ccl
@@ -0,0 +1,31 @@
+rules(
+	rule("prep-case", // prep [with-case]
+		and(
+			equal(class[-1], prep),
+			not(equal(cas[0], {}))
+		),
+		select(
+			in(cas[0], cas[-1])
+		)
+	),
+	rule("prep-subst-case", // [prep] with-case
+		and(
+			equal(class[0], prep),
+			not(equal(cas[1], {}))
+		),
+		select(
+			in(cas[0], cas[1])
+		)
+	),
+	rule("agr-right", // [here] next
+		select(
+			agr(0,1,{nmb,gnd,cas})
+		)
+	),
+	rule("agr-left", // prev [here]
+		select(
+			agr(-1,0,{nmb,gnd,cas})
+		)
+	)
+)
+
diff --git a/tests/rules-data/tag/manyrules/prep-agr.out.xml b/tests/rules-data/tag/manyrules/prep-agr.out.xml
new file mode 100644
index 0000000..ebaa436
--- /dev/null
+++ b/tests/rules-data/tag/manyrules/prep-agr.out.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Na</orth>
+    <lex><base>na</base><ctag>prep:loc</ctag></lex>
+   </tok>
+   <tok>
+    <orth>starym</orth>
+    <lex><base>stary</base><ctag>adj:sg:loc:m3:pos</ctag></lex>
+   </tok>
+   <tok>
+    <orth>stole</orth>
+   <lex><base>stół</base><ctag>subst:sg:loc:m3</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/relabel-enc/enc.ccl b/tests/rules-data/tag/relabel-enc/enc.ccl
new file mode 100644
index 0000000..6868730
--- /dev/null
+++ b/tests/rules-data/tag/relabel-enc/enc.ccl
@@ -0,0 +1,7 @@
+rules(
+	rule("enc_suger",
+		in({ger,subst}, class[0]),
+		relabel({ger}, equal(class[0], {subst}))
+	)
+)
+
diff --git a/tests/rules-data/tag/relabel-enc/enc.out.xml b/tests/rules-data/tag/relabel-enc/enc.out.xml
new file mode 100644
index 0000000..423eb6b
--- /dev/null
+++ b/tests/rules-data/tag/relabel-enc/enc.out.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Jedzenie</orth>
+    <lex><base>jedzenie</base><ctag>ger:sg:acc:n</ctag></lex>
+    <lex><base>jedzenie</base><ctag>ger:sg:nom:n</ctag></lex>
+    <lex><base>jedzenie</base><ctag>ger:sg:voc:n</ctag></lex>
+    <lex><base>jeść</base><ctag>ger:sg:acc:n:imperf:aff</ctag></lex>
+    <lex><base>jeść</base><ctag>ger:sg:nom:n:imperf:aff</ctag></lex>
+    <lex><base>jeść</base><ctag>ger:sg:voc:n:imperf:aff</ctag></lex>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>,</orth>
+    <lex><base>,</base><ctag>interp</ctag></lex>
+   </tok>
+   <tok>
+    <orth>siedzenie</orth>
+    <lex><base>siedzenie</base><ctag>ger:sg:acc:n</ctag></lex>
+    <lex><base>siedzenie</base><ctag>ger:sg:nom:n</ctag></lex>
+    <lex><base>siedzenie</base><ctag>ger:sg:voc:n</ctag></lex>
+    <lex><base>siedzieć</base><ctag>ger:sg:acc:n:imperf:aff</ctag></lex>
+    <lex><base>siedzieć</base><ctag>ger:sg:nom:n:imperf:aff</ctag></lex>
+    <lex><base>siedzieć</base><ctag>ger:sg:voc:n:imperf:aff</ctag></lex>
+   </tok>
+   <tok>
+    <orth>i</orth>
+    <lex><base>i</base><ctag>conj</ctag></lex>
+   </tok>
+   <tok>
+    <orth>drzewo</orth>
+    <lex><base>drzewo</base><ctag>subst:sg:acc:n</ctag></lex>
+    <lex><base>drzewo</base><ctag>subst:sg:nom:n</ctag></lex>
+    <lex><base>drzewo</base><ctag>subst:sg:voc:n</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/relabel-enc/suger.xml b/tests/rules-data/tag/relabel-enc/suger.xml
new file mode 100644
index 0000000..84a471b
--- /dev/null
+++ b/tests/rules-data/tag/relabel-enc/suger.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Jedzenie</orth>
+    <lex><base>jedzenie</base><ctag>subst:sg:acc:n</ctag></lex>
+    <lex><base>jedzenie</base><ctag>subst:sg:nom:n</ctag></lex>
+    <lex><base>jedzenie</base><ctag>subst:sg:voc:n</ctag></lex>
+    <lex><base>jeść</base><ctag>ger:sg:acc:n:imperf:aff</ctag></lex>
+    <lex><base>jeść</base><ctag>ger:sg:nom:n:imperf:aff</ctag></lex>
+    <lex><base>jeść</base><ctag>ger:sg:voc:n:imperf:aff</ctag></lex>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>,</orth>
+    <lex><base>,</base><ctag>interp</ctag></lex>
+   </tok>
+   <tok>
+    <orth>siedzenie</orth>
+    <lex><base>siedzenie</base><ctag>subst:sg:acc:n</ctag></lex>
+    <lex><base>siedzenie</base><ctag>subst:sg:nom:n</ctag></lex>
+    <lex><base>siedzenie</base><ctag>subst:sg:voc:n</ctag></lex>
+    <lex><base>siedzieć</base><ctag>ger:sg:acc:n:imperf:aff</ctag></lex>
+    <lex><base>siedzieć</base><ctag>ger:sg:nom:n:imperf:aff</ctag></lex>
+    <lex><base>siedzieć</base><ctag>ger:sg:voc:n:imperf:aff</ctag></lex>
+   </tok>
+   <tok>
+    <orth>i</orth>
+    <lex><base>i</base><ctag>conj</ctag></lex>
+   </tok>
+   <tok>
+    <orth>drzewo</orth>
+    <lex><base>drzewo</base><ctag>subst:sg:acc:n</ctag></lex>
+    <lex><base>drzewo</base><ctag>subst:sg:nom:n</ctag></lex>
+    <lex><base>drzewo</base><ctag>subst:sg:voc:n</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/select/psykoty.xml b/tests/rules-data/tag/select/psykoty.xml
new file mode 100644
index 0000000..c529b34
--- /dev/null
+++ b/tests/rules-data/tag/select/psykoty.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Duże</orth>
+    <lex><base>duży</base><ctag>adj:pl:acc:f:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:acc:m2:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:acc:m3:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:acc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:f:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:m2:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:m3:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:f:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:m2:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:m3:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:acc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:nom:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:voc:n:pos</ctag></lex>
+   </tok>
+   <tok>
+    <orth>psy</orth>
+    <lex><base>pies</base><ctag>subst:pl:acc:m2</ctag></lex>
+    <lex><base>pies</base><ctag>subst:pl:nom:m2</ctag></lex>
+    <lex><base>pies</base><ctag>subst:pl:voc:m2</ctag></lex>
+   </tok>
+   <tok>
+    <orth>i</orth>
+    <lex><base>i</base><ctag>conj</ctag></lex>
+   </tok>
+   <tok>
+    <orth>koty</orth>
+    <lex><base>kot</base><ctag>subst:pl:acc:m2</ctag></lex>
+    <lex><base>kot</base><ctag>subst:pl:nom:m1</ctag></lex>
+    <lex><base>kot</base><ctag>subst:pl:nom:m2</ctag></lex>
+    <lex><base>kot</base><ctag>subst:pl:voc:m1</ctag></lex>
+    <lex><base>kot</base><ctag>subst:pl:voc:m2</ctag></lex>
+    <lex><base>kota</base><ctag>subst:pl:acc:f</ctag></lex>
+    <lex><base>kota</base><ctag>subst:pl:nom:f</ctag></lex>
+    <lex><base>kota</base><ctag>subst:pl:voc:f</ctag></lex>
+    <lex><base>kota</base><ctag>subst:sg:gen:f</ctag></lex>
+    <lex><base>koty</base><ctag>subst:pl:acc:n</ctag></lex>
+    <lex><base>koty</base><ctag>subst:pl:nom:n</ctag></lex>
+    <lex><base>koty</base><ctag>subst:pl:voc:n</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/select/sel_agr.ccl b/tests/rules-data/tag/select/sel_agr.ccl
new file mode 100644
index 0000000..6f8fc99
--- /dev/null
+++ b/tests/rules-data/tag/select/sel_agr.ccl
@@ -0,0 +1,23 @@
+rules(
+	rule("sel-agr0",
+		and(
+			equal(class[0], subst),
+			equal(class[2], subst),
+			in(base[1], ["i", "lub"])
+		),
+		select(
+			agrpp(0,2,{nmb,gnd,cas})
+		)
+	),
+	rule("sel-agr2",
+		and(
+			equal(class[0], subst),
+			equal(class[-2], subst),
+			in(base[-1], ["i", "lub"])
+		),
+		select(
+			agrpp(-2,0,{nmb,gnd,cas})
+		)
+	)
+)
+
diff --git a/tests/rules-data/tag/select/sel_agr.out.xml b/tests/rules-data/tag/select/sel_agr.out.xml
new file mode 100644
index 0000000..461c67a
--- /dev/null
+++ b/tests/rules-data/tag/select/sel_agr.out.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Duże</orth>
+    <lex><base>duży</base><ctag>adj:pl:acc:f:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:acc:m2:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:acc:m3:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:acc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:f:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:m2:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:m3:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:f:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:m2:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:m3:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:acc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:nom:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:voc:n:pos</ctag></lex>
+   </tok>
+   <tok>
+    <orth>psy</orth>
+    <lex><base>pies</base><ctag>subst:pl:acc:m2</ctag></lex>
+    <lex><base>pies</base><ctag>subst:pl:nom:m2</ctag></lex>
+    <lex><base>pies</base><ctag>subst:pl:voc:m2</ctag></lex>
+   </tok>
+   <tok>
+    <orth>i</orth>
+    <lex><base>i</base><ctag>conj</ctag></lex>
+   </tok>
+   <tok>
+    <orth>koty</orth>
+    <lex><base>kot</base><ctag>subst:pl:acc:m2</ctag></lex>
+    <lex><base>kot</base><ctag>subst:pl:nom:m2</ctag></lex>
+    <lex><base>kot</base><ctag>subst:pl:voc:m2</ctag></lex>
+  </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/select/seln.ccl b/tests/rules-data/tag/select/seln.ccl
new file mode 100644
index 0000000..8cafdf8
--- /dev/null
+++ b/tests/rules-data/tag/select/seln.ccl
@@ -0,0 +1,7 @@
+rules(
+	rule("sel-n",
+		select(
+			equal(gnd[0], {n})
+		)
+	)
+)
diff --git a/tests/rules-data/tag/select/seln.out.xml b/tests/rules-data/tag/select/seln.out.xml
new file mode 100644
index 0000000..12407dc
--- /dev/null
+++ b/tests/rules-data/tag/select/seln.out.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Duże</orth>
+    <lex><base>duży</base><ctag>adj:pl:acc:n:pos</ctag></lex>
+   <lex><base>duży</base><ctag>adj:pl:nom:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:acc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:nom:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:voc:n:pos</ctag></lex>
+   </tok>
+   <tok>
+    <orth>psy</orth>
+    <lex><base>pies</base><ctag>subst:pl:acc:m2</ctag></lex>
+    <lex><base>pies</base><ctag>subst:pl:nom:m2</ctag></lex>
+    <lex><base>pies</base><ctag>subst:pl:voc:m2</ctag></lex>
+   </tok>
+   <tok>
+    <orth>i</orth>
+    <lex><base>i</base><ctag>conj</ctag></lex>
+   </tok>
+   <tok>
+    <orth>koty</orth>
+    <lex><base>koty</base><ctag>subst:pl:acc:n</ctag></lex>
+    <lex><base>koty</base><ctag>subst:pl:nom:n</ctag></lex>
+    <lex><base>koty</base><ctag>subst:pl:voc:n</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/select/seln1.ccl b/tests/rules-data/tag/select/seln1.ccl
new file mode 100644
index 0000000..e8ccbf9
--- /dev/null
+++ b/tests/rules-data/tag/select/seln1.ccl
@@ -0,0 +1,9 @@
+rules(
+	rule("sel-n",
+		and(equal(base[0], "i")),
+		select(
+			1,
+			equal(gnd[1], {n})
+		)
+	)
+)
diff --git a/tests/rules-data/tag/select/seln1.out.xml b/tests/rules-data/tag/select/seln1.out.xml
new file mode 100644
index 0000000..6a2e02b
--- /dev/null
+++ b/tests/rules-data/tag/select/seln1.out.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Duże</orth>
+    <lex><base>duży</base><ctag>adj:pl:acc:f:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:acc:m2:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:acc:m3:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:acc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:f:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:m2:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:m3:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:nom:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:f:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:m2:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:m3:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:pl:voc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:acc:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:nom:n:pos</ctag></lex>
+    <lex><base>duży</base><ctag>adj:sg:voc:n:pos</ctag></lex>
+   </tok>
+   <tok>
+    <orth>psy</orth>
+    <lex><base>pies</base><ctag>subst:pl:acc:m2</ctag></lex>
+    <lex><base>pies</base><ctag>subst:pl:nom:m2</ctag></lex>
+    <lex><base>pies</base><ctag>subst:pl:voc:m2</ctag></lex>
+   </tok>
+   <tok>
+    <orth>i</orth>
+    <lex><base>i</base><ctag>conj</ctag></lex>
+   </tok>
+   <tok>
+    <orth>koty</orth>
+    <lex><base>koty</base><ctag>subst:pl:acc:n</ctag></lex>
+    <lex><base>koty</base><ctag>subst:pl:nom:n</ctag></lex>
+    <lex><base>koty</base><ctag>subst:pl:voc:n</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/unify/agreed.ccl b/tests/rules-data/tag/unify/agreed.ccl
new file mode 100644
index 0000000..77fb3e4
--- /dev/null
+++ b/tests/rules-data/tag/unify/agreed.ccl
@@ -0,0 +1,9 @@
+rules(
+	rule("unify3-case",
+		not(
+			equal(cas[0], {}),
+			equal(cas[2], {})
+		),
+		unify(0, 2, {nmb, gnd, cas})
+	)
+)
diff --git a/tests/rules-data/tag/unify/agreed.out.xml b/tests/rules-data/tag/unify/agreed.out.xml
new file mode 100644
index 0000000..47bac4c
--- /dev/null
+++ b/tests/rules-data/tag/unify/agreed.out.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Kobieta</orth>
+    <lex><base>kobieta</base><ctag>subst:sg:nom:f</ctag></lex>
+   </tok>
+   <tok>
+    <orth>nie</orth>
+    <lex><base>nie</base><ctag>qub</ctag></lex>
+  </tok>
+   <tok>
+    <orth>bita</orth>
+    <lex><base>bity</base><ctag>adj:sg:nom:f:pos</ctag></lex>
+    <lex><base>bić</base><ctag>ppas:sg:nom:f:imperf:aff</ctag></lex>
+   </tok>
+   <tok>
+    <orth>to</orth>
+    <lex><base>to</base><ctag>conj</ctag></lex>
+   </tok>
+   <tok>
+    <orth>jak</orth>
+    <lex><base>jak</base><ctag>conj</ctag></lex>
+   </tok>
+   <tok>
+    <orth>kosa</orth>
+    <lex><base>kosa</base><ctag>subst:sg:nom:f</ctag></lex>
+    <lex><base>kosy</base><ctag>adj:sg:nom:f:pos</ctag></lex>
+    <lex><base>kosy</base><ctag>adj:sg:voc:f:pos</ctag></lex>
+   </tok>
+   <tok>
+    <orth>nie</orth>
+    <lex><base>nie</base><ctag>qub</ctag></lex>
+  </tok>
+   <tok>
+    <orth>klepana</orth>
+    <lex><base>klepać</base><ctag>ppas:sg:nom:f:imperf:aff</ctag></lex>
+    <lex><base>klepać</base><ctag>ppas:sg:voc:f:imperf:aff</ctag></lex>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>!</orth>
+    <lex><base>!</base><ctag>interp</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/unify/kobieta.xml b/tests/rules-data/tag/unify/kobieta.xml
new file mode 100644
index 0000000..2081f5a
--- /dev/null
+++ b/tests/rules-data/tag/unify/kobieta.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>Kobieta</orth>
+    <lex><base>kobieta</base><ctag>subst:sg:nom:f</ctag></lex>
+   </tok>
+   <tok>
+    <orth>nie</orth>
+    <lex><base>nie</base><ctag>qub</ctag></lex>
+    <lex><base>on</base><ctag>ppron3:sg:acc:n: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:f:ter:praep</ctag></lex>
+    <lex><base>on</base><ctag>ppron3:pl:acc:n:ter:praep</ctag></lex>
+   </tok>
+   <tok>
+    <orth>bita</orth>
+    <lex><base>bity</base><ctag>adj:sg:nom:f:pos</ctag></lex>
+    <lex><base>bity</base><ctag>adj:sg:voc:f:pos</ctag></lex>
+    <lex><base>bić</base><ctag>ppas:sg:nom:f:imperf:aff</ctag></lex>
+    <lex><base>bić</base><ctag>ppas:sg:voc:f:imperf:aff</ctag></lex>
+   </tok>
+   <tok>
+    <orth>to</orth>
+    <lex><base>ten</base><ctag>adj:sg:nom:n:pos</ctag></lex>
+    <lex><base>ten</base><ctag>adj:sg:acc:n:pos</ctag></lex>
+    <lex><base>ten</base><ctag>adj:sg:voc:n:pos</ctag></lex>
+    <lex><base>to</base><ctag>conj</ctag></lex>
+   </tok>
+   <tok>
+    <orth>jak</orth>
+    <lex><base>jak</base><ctag>conj</ctag></lex>
+    <lex><base>jak</base><ctag>subst:sg:nom:m1</ctag></lex>
+    <lex><base>jak</base><ctag>subst:sg:nom:m2</ctag></lex>
+    <lex><base>jak</base><ctag>subst:sg:nom:m3</ctag></lex>
+    <lex><base>jaka</base><ctag>subst:pl:gen:f</ctag></lex>
+   </tok>
+   <tok>
+    <orth>kosa</orth>
+    <lex><base>kos</base><ctag>subst:sg:gen:m2</ctag></lex>
+    <lex><base>kos</base><ctag>subst:sg:acc:m2</ctag></lex>
+    <lex><base>kosa</base><ctag>subst:sg:nom:f</ctag></lex>
+    <lex><base>kosy</base><ctag>adj:sg:nom:f:pos</ctag></lex>
+    <lex><base>kosy</base><ctag>adj:sg:voc:f:pos</ctag></lex>
+   </tok>
+   <tok>
+    <orth>nie</orth>
+    <lex><base>nie</base><ctag>qub</ctag></lex>
+    <lex><base>on</base><ctag>ppron3:sg:acc:n: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:f:ter:praep</ctag></lex>
+    <lex><base>on</base><ctag>ppron3:pl:acc:n:ter:praep</ctag></lex>
+   </tok>
+   <tok>
+    <orth>klepana</orth>
+    <lex><base>klepać</base><ctag>ppas:sg:nom:f:imperf:aff</ctag></lex>
+    <lex><base>klepać</base><ctag>ppas:sg:voc:f:imperf:aff</ctag></lex>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>!</orth>
+    <lex><base>!</base><ctag>interp</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/unify2/agr.ccl b/tests/rules-data/tag/unify2/agr.ccl
new file mode 100644
index 0000000..d0eb115
--- /dev/null
+++ b/tests/rules-data/tag/unify2/agr.ccl
@@ -0,0 +1,5 @@
+rules(
+	rule("agr3",
+		unify(0, 2, {nmb, gnd, cas})
+	)
+)
diff --git a/tests/rules-data/tag/unify2/agr.out.xml b/tests/rules-data/tag/unify2/agr.out.xml
new file mode 100644
index 0000000..b697447
--- /dev/null
+++ b/tests/rules-data/tag/unify2/agr.out.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>nie</orth>
+    <lex><base>nie</base><ctag>qub</ctag></lex>
+    <lex><base>on</base><ctag>ppron3:sg:acc:n:ter:praep</ctag></lex>
+   </tok>
+   <tok>
+    <orth>czujÄ™</orth>
+    <lex><base>czuć</base><ctag>fin:sg:pri:imperf</ctag></lex>
+   </tok>
+   <tok>
+    <orth>już</orth>
+    <lex><base>już</base><ctag>qub</ctag></lex>
+   </tok>
+   <tok>
+    <orth>całym</orth>
+   <lex><base>cały</base><ctag>adj:sg:inst:m1:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:inst:m2:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:inst:m3:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:inst:n:pos</ctag></lex>
+  </tok>
+   <tok>
+    <orth>sobÄ…</orth>
+    <lex><base>siÄ™</base><ctag>siebie:inst</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/unify2/in.xml b/tests/rules-data/tag/unify2/in.xml
new file mode 100644
index 0000000..4103c66
--- /dev/null
+++ b/tests/rules-data/tag/unify2/in.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <chunk type="s">
+   <tok>
+    <orth>nie</orth>
+    <lex><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>czujÄ™</orth>
+    <lex><base>czuć</base><ctag>fin:sg:pri:imperf</ctag></lex>
+   </tok>
+   <tok>
+    <orth>już</orth>
+    <lex><base>już</base><ctag>qub</ctag></lex>
+   </tok>
+   <tok>
+    <orth>całym</orth>
+    <lex><base>cały</base><ctag>adj:pl:dat:f:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:pl:dat:m1:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:pl:dat:m2:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:pl:dat:m3:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:pl:dat:n:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:inst:m1:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:inst:m2:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:inst:m3:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:inst:n:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:loc:m1:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:loc:m2:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:loc:m3:pos</ctag></lex>
+    <lex><base>cały</base><ctag>adj:sg:loc:n:pos</ctag></lex>
+   </tok>
+   <tok>
+    <orth>sobÄ…</orth>
+    <lex><base>siÄ™</base><ctag>siebie:inst</ctag></lex>
+   </tok>
+  </chunk>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/tag/zero/rule.ccl b/tests/rules-data/tag/zero/rule.ccl
new file mode 100644
index 0000000..d9689ad
--- /dev/null
+++ b/tests/rules-data/tag/zero/rule.ccl
@@ -0,0 +1,8 @@
+rules(
+	rule("rule1",
+	in(class[0], {conj, qub}),
+	delete(
+		equal(class[0], {qub})
+	)
+	)
+)
diff --git a/tests/rules-data/tag/zero/rule.out.xml b/tests/rules-data/tag/zero/rule.out.xml
new file mode 100644
index 0000000..2c4b1e0
--- /dev/null
+++ b/tests/rules-data/tag/zero/rule.out.xml
@@ -0,0 +1,167 @@
+<?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>
+</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/rules-data/tag/zero/t01.xml b/tests/rules-data/tag/zero/t01.xml
new file mode 100644
index 0000000..3c7bc4f
--- /dev/null
+++ b/tests/rules-data/tag/zero/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>
+
-- 
GitLab