public void ChainedVarintReadWriteTest() { var stream = new MemoryStream(); var chain = new ListChain <DocumentId>() { new VarintPostingsList() { 0, 1, 2 }, GetDocIds(10, 11), new VarintPostingsList() { 12, 13, 14, 15, 100, 111 }, }; using var writer = new PostingsListWriter(stream); writer.Write(chain); stream.Seek(0, SeekOrigin.Begin); using var reader = new PostingsListReader(stream, leaveOpen: false); var count = reader.ReadCount(0); var deserialized = reader.Read(0); Assert.Equal(chain.Count, count); Assert.True(deserialized is VarintPostingsList); Assert.Equal(chain.ToArray(), deserialized.ToArray()); }
public void ListChainCreateTest() { var chain = new ListChain <int> { new[] { 4, 5, 6, 7 }, new[] { 1, 2 }, new[] { 3 } }; Assert.Equal(7, chain.Count); Assert.Equal(new[] { 4, 5, 6, 7, 1, 2, 3 }, chain.ToArray()); Assert.Equal(3, chain.Chains.Count); }
public void ListChainClearTest() { var chain = new ListChain <int> { new[] { 4, 5, 6, 7 }, new[] { 1, 2 }, new[] { 3 } }; chain.Clear(); Assert.Empty(chain); Assert.Equal(Array.Empty <int>(), chain.ToArray()); }
public void ListChainSortTest() { var chain = new ListChain <int> { new[] { 4, 5, 6, 7 }, new[] { 1, 2 }, new[] { 3 } }; chain.Sort((a, b) => a.First().CompareTo(b.First())); Assert.Equal(7, chain.Count); Assert.Equal(new[] { 1, 2, 3, 4, 5, 6, 7 }, chain.ToArray()); }