public virtual void Test() { string test = "The quick red fox jumped over the lazy brown dogs"; NumericPayloadTokenFilter nptf = new NumericPayloadTokenFilter(new WordTokenFilter(this, new MockTokenizer(new StringReader(test), MockTokenizer.WHITESPACE, false)), 3, "D"); bool seenDogs = false; ICharTermAttribute termAtt = nptf.GetAttribute <ICharTermAttribute>(); ITypeAttribute typeAtt = nptf.GetAttribute <ITypeAttribute>(); IPayloadAttribute payloadAtt = nptf.GetAttribute <IPayloadAttribute>(); nptf.Reset(); while (nptf.IncrementToken()) { if (termAtt.ToString().Equals("dogs", StringComparison.Ordinal)) { seenDogs = true; assertTrue(typeAtt.Type + " is not equal to " + "D", typeAtt.Type.Equals("D", StringComparison.Ordinal) == true); assertTrue("payloadAtt.getPayload() is null and it shouldn't be", payloadAtt.Payload != null); byte[] bytes = payloadAtt.Payload.Bytes; //safe here to just use the bytes, otherwise we should use offset, length assertTrue(bytes.Length + " does not equal: " + payloadAtt.Payload.Length, bytes.Length == payloadAtt.Payload.Length); assertTrue(payloadAtt.Payload.Offset + " does not equal: " + 0, payloadAtt.Payload.Offset == 0); float pay = PayloadHelper.DecodeSingle(bytes); assertTrue(pay + " does not equal: " + 3, pay == 3); } else { assertTrue(typeAtt.Type + " is not null and it should be", typeAtt.Type.Equals("word", StringComparison.Ordinal)); } } assertTrue(seenDogs + " does not equal: " + true, seenDogs == true); }
public virtual void TestDelim() { TextReader reader = new StringReader("the*0.1 quick*0.1 red*0.1"); TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); stream = TokenFilterFactory("DelimitedPayload", "encoder", "float", "delimiter", "*").Create(stream); stream.Reset(); while (stream.IncrementToken()) { IPayloadAttribute payAttr = stream.GetAttribute <IPayloadAttribute>(); assertNotNull(payAttr); byte[] payData = payAttr.Payload.Bytes; assertNotNull(payData); float payFloat = PayloadHelper.DecodeSingle(payData); assertEquals(0.1f, payFloat, 0.0f); } stream.End(); stream.Dispose(); }