You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2014/04/30 14:44:44 UTC
svn commit: r1591274 - in
/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene:
index/TestTermVectorsWriter.java search/TestTermVectors.java
Author: rmuir
Date: Wed Apr 30 12:44:43 2014
New Revision: 1591274
URL: http://svn.apache.org/r1591274
Log:
rewrite broken test
Modified:
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java?rev=1591274&r1=1591273&r2=1591274&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java Wed Apr 30 12:44:43 2014
@@ -577,4 +577,87 @@ public class TestTermVectorsWriter exten
iw.shutdown();
dir.close();
}
+
+ /**
+ * In a single doc, for the same field, mix the term vectors up
+ */
+ public void testInconsistentTermVectorOptions() throws IOException {
+ FieldType a, b;
+
+ // no vectors + vectors
+ a = new FieldType(TextField.TYPE_NOT_STORED);
+ b = new FieldType(TextField.TYPE_NOT_STORED);
+ b.setStoreTermVectors(true);
+ doTestMixup(a, b);
+
+ // vectors + vectors with pos
+ a = new FieldType(TextField.TYPE_NOT_STORED);
+ a.setStoreTermVectors(true);
+ b = new FieldType(TextField.TYPE_NOT_STORED);
+ b.setStoreTermVectors(true);
+ b.setStoreTermVectorPositions(true);
+ doTestMixup(a, b);
+
+ // vectors + vectors with off
+ a = new FieldType(TextField.TYPE_NOT_STORED);
+ a.setStoreTermVectors(true);
+ b = new FieldType(TextField.TYPE_NOT_STORED);
+ b.setStoreTermVectors(true);
+ b.setStoreTermVectorOffsets(true);
+ doTestMixup(a, b);
+
+ // vectors with pos + vectors with pos + off
+ a = new FieldType(TextField.TYPE_NOT_STORED);
+ a.setStoreTermVectors(true);
+ a.setStoreTermVectorPositions(true);
+ b = new FieldType(TextField.TYPE_NOT_STORED);
+ b.setStoreTermVectors(true);
+ b.setStoreTermVectorPositions(true);
+ b.setStoreTermVectorOffsets(true);
+ doTestMixup(a, b);
+
+ // vectors with pos + vectors with pos + pay
+ a = new FieldType(TextField.TYPE_NOT_STORED);
+ a.setStoreTermVectors(true);
+ a.setStoreTermVectorPositions(true);
+ b = new FieldType(TextField.TYPE_NOT_STORED);
+ b.setStoreTermVectors(true);
+ b.setStoreTermVectorPositions(true);
+ b.setStoreTermVectorPayloads(true);
+ doTestMixup(a, b);
+ }
+
+ private void doTestMixup(FieldType ft1, FieldType ft2) throws IOException {
+ Directory dir = newDirectory();
+ RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
+
+ // add 3 good docs
+ for (int i = 0; i < 3; i++) {
+ Document doc = new Document();
+ doc.add(new StringField("id", Integer.toString(i), Field.Store.NO));
+ iw.addDocument(doc);
+ }
+
+ // add broken doc
+ Document doc = new Document();
+ doc.add(new Field("field", "value1", ft1));
+ doc.add(new Field("field", "value2", ft2));
+
+ // ensure broken doc hits exception
+ try {
+ iw.addDocument(doc);
+ fail("didn't hit expected exception");
+ } catch (IllegalArgumentException iae) {
+ assertNotNull(iae.getMessage());
+ assertTrue(iae.getMessage().startsWith("all instances of a given field name must have the same term vectors settings"));
+ }
+
+ // ensure good docs are still ok
+ IndexReader ir = iw.getReader();
+ assertEquals(3, ir.numDocs());
+
+ ir.close();
+ iw.close();
+ dir.close();
+ }
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java?rev=1591274&r1=1591273&r2=1591274&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java Wed Apr 30 12:44:43 2014
@@ -82,45 +82,6 @@ public class TestTermVectors extends Luc
directory = null;
}
- // In a single doc, for the same field, mix the term
- // vectors up
- public void testMixedVectrosVectors() throws IOException {
- RandomIndexWriter writer = new RandomIndexWriter(random(), directory,
- newIndexWriterConfig(TEST_VERSION_CURRENT,
- new MockAnalyzer(random(), MockTokenizer.SIMPLE, true)).setOpenMode(OpenMode.CREATE));
- Document doc = new Document();
-
- FieldType ft2 = new FieldType(TextField.TYPE_STORED);
- ft2.setStoreTermVectors(true);
-
- FieldType ft3 = new FieldType(TextField.TYPE_STORED);
- ft3.setStoreTermVectors(true);
- ft3.setStoreTermVectorPositions(true);
-
- FieldType ft4 = new FieldType(TextField.TYPE_STORED);
- ft4.setStoreTermVectors(true);
- ft4.setStoreTermVectorOffsets(true);
-
- FieldType ft5 = new FieldType(TextField.TYPE_STORED);
- ft5.setStoreTermVectors(true);
- ft5.setStoreTermVectorOffsets(true);
- ft5.setStoreTermVectorPositions(true);
-
- doc.add(newTextField("field", "one", Field.Store.YES));
- doc.add(newField("field", "one", ft2));
- doc.add(newField("field", "one", ft3));
- doc.add(newField("field", "one", ft4));
- doc.add(newField("field", "one", ft5));
- try {
- writer.addDocument(doc);
- fail("should have hit exception");
- } catch (IllegalArgumentException iae) {
- assertEquals("all instances of a given field name must have the same term vectors settings (storeTermVectors changed for field=\"field\")",
- iae.getMessage());
- }
- writer.shutdown();
- }
-
private IndexWriter createWriter(Directory dir) throws IOException {
return new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT,
new MockAnalyzer(random())).setMaxBufferedDocs(2));