Example #1
0
        public void Find_sequence_zero_blocks()
        {
            BlockTree blockTree = BuildBlockTree();
            Block     block0    = Build.A.Block.WithNumber(0).TestObject;
            Block     block1    = Build.A.Block.WithNumber(1).WithParent(block0).TestObject;
            Block     block2    = Build.A.Block.WithNumber(2).WithParent(block1).TestObject;

            AddToMain(blockTree, block0);
            AddToMain(blockTree, block1);
            AddToMain(blockTree, block2);

            Block[] blocks = blockTree.FindBlocks(block0.Hash, 0, 0, false);
            Assert.AreEqual(0, blocks.Length);
        }
Example #2
0
        public void Find_sequence_zero_blocks()
        {
            BlockTree blockTree = new BlockTree(new MemDb(), new MemDb(), new MemDb(), OlympicSpecProvider.Instance, NullLogManager.Instance);
            Block     block0    = Build.A.Block.WithNumber(0).TestObject;
            Block     block1    = Build.A.Block.WithNumber(1).WithParent(block0).TestObject;
            Block     block2    = Build.A.Block.WithNumber(2).WithParent(block1).TestObject;

            AddToMain(blockTree, block0);
            AddToMain(blockTree, block1);
            AddToMain(blockTree, block2);

            Block[] blocks = blockTree.FindBlocks(block0.Hash, 0, 0, false);
            Assert.AreEqual(0, blocks.Length);
        }
Example #3
0
        public void Find_sequence_basic_skip()
        {
            BlockTree blockTree = BuildBlockTree();
            Block     block0    = Build.A.Block.WithNumber(0).TestObject;
            Block     block1    = Build.A.Block.WithNumber(1).WithParent(block0).TestObject;
            Block     block2    = Build.A.Block.WithNumber(2).WithParent(block1).TestObject;

            AddToMain(blockTree, block0);
            AddToMain(blockTree, block1);
            AddToMain(blockTree, block2);

            Block[] blocks = blockTree.FindBlocks(block0.Hash, 2, 1, false);
            Assert.AreEqual(2, blocks.Length, "length");
            Assert.AreEqual(block0.Hash, BlockHeader.CalculateHash(blocks[0].Header));
            Assert.AreEqual(block2.Hash, BlockHeader.CalculateHash(blocks[1].Header));
        }
Example #4
0
        public void Find_sequence_basic_skip()
        {
            BlockTree blockTree = new BlockTree(new MemDb(), new MemDb(), new MemDb(), OlympicSpecProvider.Instance, NullLogManager.Instance);
            Block     block0    = Build.A.Block.WithNumber(0).TestObject;
            Block     block1    = Build.A.Block.WithNumber(1).WithParent(block0).TestObject;
            Block     block2    = Build.A.Block.WithNumber(2).WithParent(block1).TestObject;

            AddToMain(blockTree, block0);
            AddToMain(blockTree, block1);
            AddToMain(blockTree, block2);

            Block[] blocks = blockTree.FindBlocks(block0.Hash, 2, 1, false);
            Assert.AreEqual(2, blocks.Length, "length");
            Assert.AreEqual(block0.Hash, BlockHeader.CalculateHash(blocks[0].Header));
            Assert.AreEqual(block2.Hash, BlockHeader.CalculateHash(blocks[1].Header));
        }
Example #5
0
        public void Find_sequence_reverse()
        {
            BlockTree blockTree = BuildBlockTree();
            Block     block0    = Build.A.Block.WithNumber(0).TestObject;
            Block     block1    = Build.A.Block.WithNumber(1).WithParent(block0).TestObject;
            Block     block2    = Build.A.Block.WithNumber(2).WithParent(block1).TestObject;

            AddToMain(blockTree, block0);
            AddToMain(blockTree, block1);
            AddToMain(blockTree, block2);

            Block[] blocks = blockTree.FindBlocks(block2.Hash, 3, 0, true);
            Assert.AreEqual(3, blocks.Length);

            Assert.AreEqual(block2.Hash, BlockHeader.CalculateHash(blocks[0].Header));
            Assert.AreEqual(block0.Hash, BlockHeader.CalculateHash(blocks[2].Header));
        }