Clover Coverage Report
Coverage timestamp: Fri May 9 2008 10:54:27 EST
105   193   26   13.12
30   160   0.25   8
8     3.25  
1    
 
  TestTermVectorsReader       Line # 10 105 26 97.9% 0.97902095
 
  (5)
 
1    package org.apache.lucene.index;
2   
3   
4    import junit.framework.TestCase;
5    import org.apache.lucene.store.RAMDirectory;
6   
7    import java.io.IOException;
8    import java.util.Arrays;
9   
 
10    public class TestTermVectorsReader extends TestCase {
11    private TermVectorsWriter writer = null;
12    //Must be lexicographically sorted, will do in setup, versus trying to maintain here
13    private String [] testFields = {"f1", "f2", "f3"};
14    private boolean [] testFieldsStorePos = {true, false, true, false};
15    private boolean [] testFieldsStoreOff = {true, false, false, true};
16    private String [] testTerms = {"this", "is", "a", "test"};
17    private int [][] positions = new int[testTerms.length][];
18    private TermVectorOffsetInfo [][] offsets = new TermVectorOffsetInfo[testTerms.length][];
19    private RAMDirectory dir = new RAMDirectory();
20    private String seg = "testSegment";
21    private FieldInfos fieldInfos = new FieldInfos();
22   
 
23  5 toggle public TestTermVectorsReader(String s) {
24  5 super(s);
25    }
26   
 
27  5 toggle protected void setUp() throws IOException {
28  20 for (int i = 0; i < testFields.length; i++) {
29  15 fieldInfos.add(testFields[i], true, true, testFieldsStorePos[i], testFieldsStoreOff[i]);
30    }
31   
32  25 for (int i = 0; i < testTerms.length; i++)
33    {
34  20 positions[i] = new int[3];
35  80 for (int j = 0; j < positions[i].length; j++) {
36    // poditions are always sorted in increasing order
37  60 positions[i][j] = (int)(j * 10 + Math.random() * 10);
38    }
39  20 offsets[i] = new TermVectorOffsetInfo[3];
40  80 for (int j = 0; j < offsets[i].length; j++){
41    // ofsets are alway sorted in increasing order
42  60 offsets[i][j] = new TermVectorOffsetInfo(j * 10, j * 10 + testTerms[i].length());
43    }
44    }
45  5 Arrays.sort(testTerms);
46  30 for (int j = 0; j < 5; j++) {
47  25 writer = new TermVectorsWriter(dir, seg, fieldInfos);
48  25 writer.openDocument();
49   
50  100 for (int k = 0; k < testFields.length; k++) {
51  75 writer.openField(testFields[k]);
52  375 for (int i = 0; i < testTerms.length; i++) {
53  300 writer.addTerm(testTerms[i], 3, positions[i], offsets[i]);
54    }
55  75 writer.closeField();
56    }
57  25 writer.closeDocument();
58  25 writer.close();
59    }
60    }
61   
 
62  5 toggle protected void tearDown() {
63   
64    }
65   
 
66  1 toggle public void test() {
67    //Check to see the files were created properly in setup
68  1 assertTrue(writer.isDocumentOpen() == false);
69  1 assertTrue(dir.fileExists(seg + TermVectorsWriter.TVD_EXTENSION));
70  1 assertTrue(dir.fileExists(seg + TermVectorsWriter.TVX_EXTENSION));
71    }
72   
 
73  1 toggle public void testReader() throws IOException {
74  1 TermVectorsReader reader = new TermVectorsReader(dir, seg, fieldInfos);
75  1 assertTrue(reader != null);
76  1 TermFreqVector vector = reader.get(0, testFields[0]);
77  1 assertTrue(vector != null);
78  1 String [] terms = vector.getTerms();
79  1 assertTrue(terms != null);
80  1 assertTrue(terms.length == testTerms.length);
81  5 for (int i = 0; i < terms.length; i++) {
82  4 String term = terms[i];
83    //System.out.println("Term: " + term);
84  4 assertTrue(term.equals(testTerms[i]));
85    }
86    }
87   
 
88  1 toggle public void testPositionReader() throws IOException {
89  1 TermVectorsReader reader = new TermVectorsReader(dir, seg, fieldInfos);
90  1 assertTrue(reader != null);
91  1 TermPositionVector vector;
92  1 String [] terms;
93  1 vector = (TermPositionVector)reader.get(0, testFields[0]);
94  1 assertTrue(vector != null);
95  1 terms = vector.getTerms();
96  1 assertTrue(terms != null);
97  1 assertTrue(terms.length == testTerms.length);
98  5 for (int i = 0; i < terms.length; i++) {
99  4 String term = terms[i];
100    //System.out.println("Term: " + term);
101  4 assertTrue(term.equals(testTerms[i]));
102  4 int [] positions = vector.getTermPositions(i);
103  4 assertTrue(positions != null);
104  4 assertTrue(positions.length == this.positions[i].length);
105  16 for (int j = 0; j < positions.length; j++) {
106  12 int position = positions[j];
107  12 assertTrue(position == this.positions[i][j]);
108    }
109  4 TermVectorOffsetInfo [] offset = vector.getOffsets(i);
110  4 assertTrue(offset != null);
111  4 assertTrue(offset.length == this.offsets[i].length);
112  16 for (int j = 0; j < offset.length; j++) {
113  12 TermVectorOffsetInfo termVectorOffsetInfo = offset[j];
114  12 assertTrue(termVectorOffsetInfo.equals(offsets[i][j]));
115    }
116    }
117   
118  1 TermFreqVector freqVector = reader.get(0, testFields[1]); //no pos, no offset
119  1 assertTrue(freqVector != null);
120  1 assertTrue(freqVector instanceof TermPositionVector == false);
121  1 terms = freqVector.getTerms();
122  1 assertTrue(terms != null);
123  1 assertTrue(terms.length == testTerms.length);
124  5 for (int i = 0; i < terms.length; i++) {
125  4 String term = terms[i];
126    //System.out.println("Term: " + term);
127  4 assertTrue(term.equals(testTerms[i]));
128    }
129    }
130   
 
131  1 toggle public void testOffsetReader() throws IOException {
132  1 TermVectorsReader reader = new TermVectorsReader(dir, seg, fieldInfos);
133  1 assertTrue(reader != null);
134  1 TermPositionVector vector = (TermPositionVector)reader.get(0, testFields[0]);
135  1 assertTrue(vector != null);
136  1 String [] terms = vector.getTerms();
137  1 assertTrue(terms != null);
138  1 assertTrue(terms.length == testTerms.length);
139  5 for (int i = 0; i < terms.length; i++) {
140  4 String term = terms[i];
141    //System.out.println("Term: " + term);
142  4 assertTrue(term.equals(testTerms[i]));
143  4 int [] positions = vector.getTermPositions(i);
144  4 assertTrue(positions != null);
145  4 assertTrue(positions.length == this.positions[i].length);
146  16 for (int j = 0; j < positions.length; j++) {
147  12 int position = positions[j];
148  12 assertTrue(position == this.positions[i][j]);
149    }
150  4 TermVectorOffsetInfo [] offset = vector.getOffsets(i);
151  4 assertTrue(offset != null);
152  4 assertTrue(offset.length == this.offsets[i].length);
153  16 for (int j = 0; j < offset.length; j++) {
154  12 TermVectorOffsetInfo termVectorOffsetInfo = offset[j];
155