void DoTest(TrieNode n, string streamStr, long initialPos, long?expected, long limit = long.MaxValue) { Stream s = new MemoryStream(Encoding.UTF8.GetBytes(streamStr)); s.Position = initialPos; Assert.AreEqual(expected, n.Find(s, limit)); }
public override TextStreamPosition?Find(Stream stream, Encoding encoding, TextStreamPositioningParams positioningParams) { EnsureInitialized(encoding); stream.Position = 0; var tmp = trieNode.Find(stream, 1024 * 1024 * 1); if (tmp == null) { return(null); } return(new TextStreamPosition(tmp.Value, positioningParams)); }
public override TextStreamPosition?Find(Stream stream, Encoding encoding, bool findEnd, TextStreamPositioningParams positioningParams) { EnsureInitialized(encoding); var bufSize = 1 * 1024 * 1024; if (findEnd) { stream.Position = Math.Max(0, stream.Length - bufSize); } else { stream.Position = 0; } var tmp = trieNode.Find(stream, bufSize); if (tmp == null) { return(null); } return(new TextStreamPosition(tmp.Value, positioningParams)); }