public void PoolItem_CompareTo_Hash() { int sizeFixed = 51; int netFeeSatoshiFixed = 1; var tx1 = GenerateTxWithFirstByteOfHashGreaterThanOrEqualTo(0x80, netFeeSatoshiFixed, sizeFixed); var tx2 = GenerateTxWithFirstByteOfHashLessThanOrEqualTo(0x79, netFeeSatoshiFixed, sizeFixed); tx1.Attributes = new TransactionAttribute[] { new HighPriorityAttribute() }; PoolItem pitem1 = new PoolItem(tx1); PoolItem pitem2 = new PoolItem(tx2); // Different priority pitem2.CompareTo(pitem1).Should().Be(-1); // Bulk test for (int testRuns = 0; testRuns < 30; testRuns++) { tx1 = GenerateTxWithFirstByteOfHashGreaterThanOrEqualTo(0x80, netFeeSatoshiFixed, sizeFixed); tx2 = GenerateTxWithFirstByteOfHashLessThanOrEqualTo(0x79, netFeeSatoshiFixed, sizeFixed); pitem1 = new PoolItem(tx1); pitem2 = new PoolItem(tx2); pitem2.CompareTo((Transaction)null).Should().Be(1); // pitem2.tx.Hash < pitem1.tx.Hash => 1 descending order pitem2.CompareTo(pitem1).Should().Be(1); // pitem2.tx.Hash > pitem1.tx.Hash => -1 descending order pitem1.CompareTo(pitem2).Should().Be(-1); } }
public void PoolItem_CompareTo_Equals() { int sizeFixed = 500; int netFeeSatoshiFixed = 10; var tx = GenerateTx(netFeeSatoshiFixed, sizeFixed, new byte[] { 0x13, 0x37 }); PoolItem pitem1 = new PoolItem(tx); PoolItem pitem2 = new PoolItem(tx); // pitem1 == pitem2 (fee) => 0 pitem1.CompareTo(pitem2).Should().Be(0); pitem2.CompareTo(pitem1).Should().Be(0); pitem2.CompareTo((PoolItem)null).Should().Be(1); }
public void PoolItem_CompareTo_Hash() { int sizeFixed = 50; int netFeeSatoshiFixed = 1; for (int testRuns = 0; testRuns < 30; testRuns++) { var tx1 = GenerateMockTxWithFirstByteOfHashGreaterThanOrEqualTo(0x80, new Fixed8(netFeeSatoshiFixed), sizeFixed); var tx2 = GenerateMockTxWithFirstByteOfHashLessThanOrEqualTo(0x79, new Fixed8(netFeeSatoshiFixed), sizeFixed); PoolItem pitem1 = new PoolItem(tx1.Object); PoolItem pitem2 = new PoolItem(tx2.Object); // pitem2 < pitem1 (fee) => -1 pitem2.CompareTo(pitem1).Should().Be(-1); // pitem1 > pitem2 (fee) => 1 pitem1.CompareTo(pitem2).Should().Be(1); } // equal hashes should be equal var tx3 = MockGenerateInvocationTx(new Fixed8(netFeeSatoshiFixed), sizeFixed, new byte[] { 0x13, 0x37 }); var tx4 = MockGenerateInvocationTx(new Fixed8(netFeeSatoshiFixed), sizeFixed, new byte[] { 0x13, 0x37 }); PoolItem pitem3 = new PoolItem(tx3.Object); PoolItem pitem4 = new PoolItem(tx4.Object); pitem3.CompareTo(pitem4).Should().Be(0); pitem4.CompareTo(pitem3).Should().Be(0); }
public void PoolItem_CompareTo_ClaimTx() { var tx1 = GenerateClaimTx(); // Non-free low-priority transaction var tx2 = MockGenerateInvocationTx(new Fixed8(99999), 50).Object; var poolItem1 = new PoolItem(tx1); var poolItem2 = new PoolItem(tx2); poolItem1.CompareTo(poolItem2).Should().Be(1); poolItem2.CompareTo(poolItem1).Should().Be(-1); }
public void PoolItem_CompareTo_Equals() { int sizeFixed = 500; int netFeeSatoshiFixed = 10; var tx = GenerateTx(netFeeSatoshiFixed, sizeFixed, new byte[] { 0x13, 0x37 }); PoolItem pitem1 = new PoolItem(tx); PoolItem pitem2 = new PoolItem(tx); // pitem1 == pitem2 (fee) => 0 AssertionExtensions.Should((int)pitem1.CompareTo(pitem2)).Be(0); AssertionExtensions.Should((int)pitem2.CompareTo(pitem1)).Be(0); }
public void PoolItem_CompareTo_Equals() { int sizeFixed = 500; int netFeeSatoshiFixed = 10; var tx1 = MockGenerateInvocationTx(new Fixed8(netFeeSatoshiFixed), sizeFixed, new byte[] { 0x13, 0x37 }); var tx2 = MockGenerateInvocationTx(new Fixed8(netFeeSatoshiFixed), sizeFixed, new byte[] { 0x13, 0x37 }); PoolItem pitem1 = new PoolItem(tx1.Object); PoolItem pitem2 = new PoolItem(tx2.Object); // pitem1 == pitem2 (fee) => 0 pitem1.CompareTo(pitem2).Should().Be(0); pitem2.CompareTo(pitem1).Should().Be(0); }
public void PoolItem_CompareTo_Fee() { int size1 = 50; int netFeeSatoshi1 = 1; var tx1 = MockGenerateInvocationTx(new Fixed8(netFeeSatoshi1), size1); int size2 = 50; int netFeeSatoshi2 = 2; var tx2 = MockGenerateInvocationTx(new Fixed8(netFeeSatoshi2), size2); PoolItem pitem1 = new PoolItem(tx1.Object); PoolItem pitem2 = new PoolItem(tx2.Object); Console.WriteLine($"item1 time {pitem1.Timestamp} item2 time {pitem2.Timestamp}"); // pitem1 < pitem2 (fee) => -1 pitem1.CompareTo(pitem2).Should().Be(-1); // pitem2 > pitem1 (fee) => 1 pitem2.CompareTo(pitem1).Should().Be(1); }
public void PoolItem_CompareTo_Fee() { int size1 = 50; int netFeeSatoshi1 = 1; var tx1 = GenerateTx(netFeeSatoshi1, size1); int size2 = 50; int netFeeSatoshi2 = 2; var tx2 = GenerateTx(netFeeSatoshi2, size2); PoolItem pitem1 = new PoolItem(tx1); PoolItem pitem2 = new PoolItem(tx2); Console.WriteLine($"item1 time {pitem1.Timestamp} item2 time {pitem2.Timestamp}"); // pitem1 < pitem2 (fee) => -1 pitem1.CompareTo(pitem2).Should().Be(-1); // pitem2 > pitem1 (fee) => 1 pitem2.CompareTo(pitem1).Should().Be(1); }
public void PoolItem_CompareTo_Hash() { int sizeFixed = 50; int netFeeSatoshiFixed = 1; for (int testRuns = 0; testRuns < 30; testRuns++) { var tx1 = GenerateTxWithFirstByteOfHashGreaterThanOrEqualTo(0x80, netFeeSatoshiFixed, sizeFixed); var tx2 = GenerateTxWithFirstByteOfHashLessThanOrEqualTo(0x79, netFeeSatoshiFixed, sizeFixed); PoolItem pitem1 = new PoolItem(tx1); PoolItem pitem2 = new PoolItem(tx2); // pitem2 < pitem1 (fee) => -1 pitem2.CompareTo(pitem1).Should().Be(-1); // pitem1 > pitem2 (fee) => 1 pitem1.CompareTo(pitem2).Should().Be(1); } }