Exemplo n.º 1
0
 private int Add(CompactTreeNode node)
 {
     int idx = nodes.Count;
     //todo: add to XMLDOC ?
     //Contract.Assert(idx < 0x8000000, "Arrays longer than 1GB are not suppported by default by the .NET Framework.");
     nodes.Add(node);
     return idx;
 }
        public void TestSplitNode()
        {
            CompactTreeNode node = CompactTreeNode.CreateSplitNode();

            ulong emptyRawData = node.RawData;

            Assert.That(node.IsDataNode, Is.False);
            Assert.That(node.IsSplitNode, Is.True);
            Assert.That(node.GetChild(0), Is.EqualTo(0));
            Assert.That(node.GetChild(1), Is.EqualTo(0));

            node = new CompactTreeNode(node.RawData);

            Assert.That(node.IsDataNode, Is.False);
            Assert.That(node.IsSplitNode, Is.True);
            Assert.That(node.GetChild(0), Is.EqualTo(0));
            Assert.That(node.GetChild(1), Is.EqualTo(0));

            node = node.SetChild(0, 0x71818181);

            Assert.That(node.IsDataNode, Is.False);
            Assert.That(node.IsSplitNode, Is.True);
            Assert.That(node.GetChild(0), Is.EqualTo(0x71818181));
            Assert.That(node.GetChild(1), Is.EqualTo(0));

            node = node.SetChild(1, 0x72828282);

            Assert.That(node.IsDataNode, Is.False);
            Assert.That(node.IsSplitNode, Is.True);
            Assert.That(node.GetChild(0), Is.EqualTo(0x71818181));
            Assert.That(node.GetChild(1), Is.EqualTo(0x72828282));

            node = new CompactTreeNode(node.RawData);

            Assert.That(node.IsDataNode, Is.False);
            Assert.That(node.IsSplitNode, Is.True);
            Assert.That(node.GetChild(0), Is.EqualTo(0x71818181));
            Assert.That(node.GetChild(1), Is.EqualTo(0x72828282));

            node = node.SetChild(0, 0x7FFFFFFF);
            node = node.SetChild(1, 0x7FFFFFFF);

            Assert.That(node.IsDataNode, Is.False);
            Assert.That(node.IsSplitNode, Is.True);
            Assert.That(node.GetChild(0), Is.EqualTo(0x7FFFFFFF));
            Assert.That(node.GetChild(1), Is.EqualTo(0x7FFFFFFF));

            node = node.SetChild(0, 0);
            node = node.SetChild(1, 0);

            Assert.That(node.IsDataNode, Is.False);
            Assert.That(node.IsSplitNode, Is.True);
            Assert.That(node.GetChild(0), Is.EqualTo(0));
            Assert.That(node.GetChild(1), Is.EqualTo(0));

            Assert.That(node.RawData, Is.EqualTo(emptyRawData));
        }
        public void TestDataNode()
        {
            CompactTreeNode node = CompactTreeNode.CreateDataNode(0x7181818181818181);

            Assert.That(node.IsDataNode, Is.True);
            Assert.That(node.IsSplitNode, Is.False);
            Assert.That(node.Value, Is.EqualTo(0x7181818181818181));

            node = new CompactTreeNode(node.RawData);

            Assert.That(node.IsDataNode, Is.True);
            Assert.That(node.IsSplitNode, Is.False);
            Assert.That(node.Value, Is.EqualTo(0x7181818181818181));
        }
Exemplo n.º 4
0
 public CompactTree(CompactTreeNode rootNode)
 {
     Add(rootNode);
 }