public void TestTotalWork()
{
var fakeHeaders = new FakeHeaders();
var header0 = fakeHeaders.GenesisChained();
var header1 = fakeHeaders.NextChained();
var totalWork0 = DataCalculator.CalculateWork(header0);
var totalWork1 = totalWork0 + DataCalculator.CalculateWork(header1);
var chainBuilder = new ChainBuilder();
// verify total work with 0 blocks
Assert.AreEqual(0, chainBuilder.TotalWork);
// verify total work with 1 block
chainBuilder.AddBlock(header0);
Assert.AreEqual(totalWork0.ToBigInteger(), chainBuilder.TotalWork);
// verify total work with 2 blocks
chainBuilder.AddBlock(header1);
Assert.AreEqual(totalWork1.ToBigInteger(), chainBuilder.TotalWork);
}