Exemple #1
0
        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
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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();
        }