From 24359453e71ec0ca6c163f7d884133ab329c8c74 Mon Sep 17 00:00:00 2001 From: Piotr Gankiewicz Date: Wed, 21 Aug 2019 14:08:00 +0200 Subject: [PATCH] EIP 2028 before Istanbul tests #771 --- .../Nethermind.Evm.Test/Eip2028Tests.cs | 50 ++++++++++++++----- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/src/Nethermind/Nethermind.Evm.Test/Eip2028Tests.cs b/src/Nethermind/Nethermind.Evm.Test/Eip2028Tests.cs index 38a7096d54f4..d6671d2c603c 100644 --- a/src/Nethermind/Nethermind.Evm.Test/Eip2028Tests.cs +++ b/src/Nethermind/Nethermind.Evm.Test/Eip2028Tests.cs @@ -28,8 +28,6 @@ namespace Nethermind.Evm.Test public class Eip2028Tests : VirtualMachineTestsBase { private IntrinsicGasCalculator _gasCalculator; - protected override long BlockNumber => MainNetSpecProvider.IstanbulBlockNumber; - protected override ISpecProvider SpecProvider => new CustomSpecProvider(32000, (0, Istanbul.Instance)); public override void Setup() { @@ -37,20 +35,48 @@ public override void Setup() _gasCalculator = new IntrinsicGasCalculator(); } - [Test] - public void non_zero_transaction_data_cost_should_be_16() + private class AfterIstanbul : Eip2028Tests { - var transaction = new Transaction {Data = new byte[] {1}}; - var cost = _gasCalculator.Calculate(transaction, Spec); - cost.Should().Be(GasCostOf.Transaction + 16); + protected override long BlockNumber => MainNetSpecProvider.IstanbulBlockNumber; + protected override ISpecProvider SpecProvider => new CustomSpecProvider(32000, (0, Istanbul.Instance)); + + [Test] + public void non_zero_transaction_data_cost_should_be_16() + { + var transaction = new Transaction {Data = new byte[] {1}}; + var cost = _gasCalculator.Calculate(transaction, Spec); + cost.Should().Be(GasCostOf.Transaction + 16); + } + + [Test] + public void zero_transaction_data_cost_should_be_4() + { + var transaction = new Transaction {Data = new byte[] {0}}; + var cost = _gasCalculator.Calculate(transaction, Spec); + cost.Should().Be(GasCostOf.Transaction + GasCostOf.TxDataZero); + } } - [Test] - public void zero_transaction_data_cost_should_be_4() + private class BeforeIstanbul : Eip2028Tests { - var transaction = new Transaction {Data = new byte[] {0}}; - var cost = _gasCalculator.Calculate(transaction, Spec); - cost.Should().Be(GasCostOf.Transaction + 4); + protected override long BlockNumber => MainNetSpecProvider.ByzantiumBlockNumber; + protected override ISpecProvider SpecProvider => MainNetSpecProvider.Instance; + + [Test] + public void non_zero_transaction_data_cost_should_be_68() + { + var transaction = new Transaction {Data = new byte[] {1}}; + var cost = _gasCalculator.Calculate(transaction, Spec); + cost.Should().Be(GasCostOf.Transaction + GasCostOf.TxDataNonZero); + } + + [Test] + public void zero_transaction_data_cost_should_be_4() + { + var transaction = new Transaction {Data = new byte[] {0}}; + var cost = _gasCalculator.Calculate(transaction, Spec); + cost.Should().Be(GasCostOf.Transaction + GasCostOf.TxDataZero); + } } } } \ No newline at end of file