public virtual void TestBinaryFieldOffsetLength() { MockRAMDirectory dir = new MockRAMDirectory(); IndexWriter w = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.UNLIMITED); byte[] b = new byte[50]; for (int i = 0; i < 50; i++) b[i] = (byte) (i + 77); Document doc = new Document(); Field f = new Field("binary", b, 10, 17, Field.Store.YES); byte[] bx = f.GetBinaryValue(); Assert.IsTrue(bx != null); Assert.AreEqual(50, bx.Length); Assert.AreEqual(10, f.GetBinaryOffset()); Assert.AreEqual(17, f.GetBinaryLength()); doc.Add(f); w.AddDocument(doc); w.Close(); IndexReader ir = IndexReader.Open(dir); doc = ir.Document(0); f = doc.GetField("binary"); b = f.GetBinaryValue(); Assert.IsTrue(b != null); Assert.AreEqual(17, b.Length, 17); Assert.AreEqual(87, b[0]); ir.Close(); dir.Close(); }