Skip to content

Commit

Permalink
EIP 2028 before Istanbul tests #771
Browse files Browse the repository at this point in the history
  • Loading branch information
spetz committed Aug 21, 2019
1 parent 2328b89 commit 2435945
Showing 1 changed file with 38 additions and 12 deletions.
50 changes: 38 additions & 12 deletions src/Nethermind/Nethermind.Evm.Test/Eip2028Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,29 +28,55 @@ 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()
{
base.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);
}
}
}
}

0 comments on commit 2435945

Please sign in to comment.