public void MemorySegmentCollectionSubranges() { MemorySegmentCollection c = new MemorySegmentCollection(new List <MemoryChunk> { new MemoryChunk(new ReadOnlyBytes(new byte[] { 1, 2, 3 })) { LoadingInfo = new MemoryBlockLoadingInfo(0, 3) }, new MemoryChunk(new ReadOnlyBytes(new byte[] { 200, 200, 4, 5, 6, 200, 200 })) { LoadingInfo = new MemoryBlockLoadingInfo(1, 7) }, new MemoryChunk(new ReadOnlyBytes(new byte[] { 7, 8, 9, 200 })) { LoadingInfo = new MemoryBlockLoadingInfo(2, 4) }, new MemoryChunk(new ReadOnlyBytes(new byte[] { 10, 11, 12 })) { LoadingInfo = new MemoryBlockLoadingInfo(3, 3) }, }, true); c.Segments = new List <MemoryBlockIDAndSlice>() { new MemoryBlockIDAndSlice(2, 1, 2), // 8, 9 new MemoryBlockIDAndSlice(2, 0, 3), // 7, 8, 9 new MemoryBlockIDAndSlice(3, 0, 2), // 10, 11, 12 new MemoryBlockIDAndSlice(1, 1, 1) // 5 }; LazinatorMemory memory = new LazinatorMemory(c); memory.GetConsolidatedMemory().ToArray(); // DEBUG -- finish }
public void SplittableEntitiesWork_SmallestTree() { BinaryTree = new LazinatorBinaryTree <WDouble>(); BinaryTree.Add(0); BinaryTree.Add(1); LazinatorMemory singleBufferResult = BinaryTree.SerializeLazinator(new LazinatorSerializationOptions(IncludeChildrenMode.IncludeAllChildren, false, false, false)); LazinatorMemory multipleBufferResult = BinaryTree.SerializeLazinator(new LazinatorSerializationOptions(IncludeChildrenMode.IncludeAllChildren, false, false, false, 1)); multipleBufferResult.MultipleMemoryChunks.Count().Should().BeGreaterThan(0); LazinatorMemory multipleConsolidated = new LazinatorMemory(multipleBufferResult.GetConsolidatedMemory()); string mString = multipleConsolidated.ToString(); string sString = singleBufferResult.ToString(); mString.Should().Be(sString); multipleConsolidated.Matches(singleBufferResult.InitialReadOnlyMemory.Span).Should().BeTrue(); }
public void SplittableEntitiesWork_SingleSplit() { var node = new LazinatorBinaryTreeNode <WByte>() { Data = 1 }; // node.LeftNode = new LazinatorBinaryTreeNode<WByte>() { Data = 0 }; node.RightNode = new LazinatorBinaryTreeNode <WByte>() { Data = 2 }; LazinatorMemory singleBufferResult = node.SerializeLazinator(new LazinatorSerializationOptions(IncludeChildrenMode.IncludeAllChildren, false, false, false)); LazinatorMemory multipleBufferResult = node.SerializeLazinator(new LazinatorSerializationOptions(IncludeChildrenMode.IncludeAllChildren, false, false, false, 1)); multipleBufferResult.MultipleMemoryChunks.Count().Should().BeGreaterThan(0); LazinatorMemory multipleConsolidated = new LazinatorMemory(multipleBufferResult.GetConsolidatedMemory()); string mString = multipleConsolidated.ToString(); string sString = singleBufferResult.ToString(); mString.Should().Be(sString); multipleConsolidated.Matches(singleBufferResult.InitialReadOnlyMemory.Span).Should().BeTrue(); }
public void SplittableEntitiesWork() { Example e = GetTypicalExample(); LazinatorMemory singleBufferResult = e.SerializeLazinator(new LazinatorSerializationOptions(IncludeChildrenMode.IncludeAllChildren, false, false, false)); LazinatorMemory multipleBufferResult = e.SerializeLazinator(new LazinatorSerializationOptions(IncludeChildrenMode.IncludeAllChildren, false, false, false, 10)); multipleBufferResult.MultipleMemoryChunks.Count().Should().BeGreaterThan(0); LazinatorMemory consolidated = new LazinatorMemory(multipleBufferResult.GetConsolidatedMemory()); consolidated.Matches(singleBufferResult.InitialReadOnlyMemory.Span).Should().BeTrue(); Example e2 = new Example(consolidated); ExampleEqual(e, e2).Should().BeTrue(); Example e3 = new Example(multipleBufferResult); ExampleEqual(e, e3).Should().BeTrue(); Example e4 = new Example(multipleBufferResult); Example e5 = e4.CloneLazinatorTyped(); ExampleEqual(e, e5).Should().BeTrue(); }