blob: f096877e41904547b588aa5c5bf812877d35f3c8 [file] [log] [blame]
Eliza Margaretha01929182014-02-19 11:48:59 +00001package de.ids_mannheim.korap.index;
2
Nils Diewaldf399a672013-11-18 17:55:22 +00003import java.util.*;
4import java.io.*;
5
6import static org.junit.Assert.*;
7import org.junit.Test;
8import org.junit.Ignore;
9import org.junit.runner.RunWith;
10import org.junit.runners.JUnit4;
11
12import de.ids_mannheim.korap.KorapIndex;
13import de.ids_mannheim.korap.KorapQuery;
14import de.ids_mannheim.korap.KorapResult;
15import de.ids_mannheim.korap.query.SpanElementQuery;
16import de.ids_mannheim.korap.query.SpanWithinQuery;
17import de.ids_mannheim.korap.query.SpanNextQuery;
18import de.ids_mannheim.korap.query.SpanClassQuery;
19import de.ids_mannheim.korap.index.FieldDocument;
20import de.ids_mannheim.korap.analysis.MultiTermTokenStream;
21import de.ids_mannheim.korap.index.PositionsToOffset;
22
23import org.apache.lucene.index.AtomicReaderContext;
24import org.apache.lucene.search.spans.SpanQuery;
25import org.apache.lucene.search.spans.SpanTermQuery;
26import org.apache.lucene.index.TermContext;
27import org.apache.lucene.util.OpenBitSet;
28import org.apache.lucene.search.DocIdSet;
29import org.apache.lucene.util.DocIdBitSet;
30import org.apache.lucene.util.Bits;
31
32import java.nio.ByteBuffer;
33
34
35@RunWith(JUnit4.class)
36public class TestPosToOffset {
37
38 @Test
39 public void indexExample1 () throws IOException {
40 KorapIndex ki = new KorapIndex();
41
42 FieldDocument fd = new FieldDocument();
43 fd.addTV("base",
44 "a b c",
45 "[(0-1)s:a|i:a|_0#0-1|-:t$<i>3]" +
46 "[(2-3)s:b|i:b|_1#2-3]" +
47 "[(4-5)s:c|i:c|_2#4-5]");
48 ki.addDoc(fd);
49
50 fd = new FieldDocument();
51 fd.addTV("base",
52 "x y z",
53 "[(0-1)s:x|i:x|_0#0-2|-:t$<i>3]" +
54 "[(3-4)s:y|i:y|_1#3-4]" +
55 "[(6-7)s:z|i:z|_2#6-7]"); // 3
56 ki.addDoc(fd);
57
58 ki.commit();
59
60 String field = "base";
61
62 for (AtomicReaderContext atomic : ki.reader().leaves()) {
63 PositionsToOffset pto = new PositionsToOffset(atomic, field);
64
65 pto.add(0,1);
66 pto.add(0,2);
67 pto.add(1,2);
68 pto.add(1,1);
69 pto.add(1,20);
70
71 assertEquals("Start 0,1", pto.start(0,1), 2);
72 assertEquals("End 0,1", pto.end(0,1), 3);
73
74 assertEquals("Start 0,2", pto.start(0,2), 4);
75 assertEquals("End 0,2", pto.end(0,2), 5);
76
77 assertEquals("Start 1,2", pto.start(1,2), 6);
78 assertEquals("End 1,2", pto.end(1,2), 7);
79
80 assertEquals("Start 1,1", pto.start(1,1), 3);
81 assertEquals("End 1,1", pto.end(1,1), 4);
82
83 assertEquals("Start 1,20", pto.start(1,20), 0);
84 assertEquals("End 1,20", pto.end(1,20), -1);
85 };
86 };
87};