public void CanCalculatePowCorrectly() { var chain = new ChainIndexer(KnownNetworks.Main); EnsureDownloaded("MainChain.dat", "https://aois.blob.core.windows.net/public/MainChain.dat"); chain.Load(File.ReadAllBytes("MainChain.dat")); foreach (ChainedHeader block in chain.EnumerateAfter(chain.Genesis)) { Target thisWork = block.GetWorkRequired(KnownNetworks.Main); Target thisWork2 = block.Previous.GetNextWorkRequired(KnownNetworks.Main); Assert.Equal(thisWork, thisWork2); Assert.True(block.CheckProofOfWorkAndTarget(KnownNetworks.Main)); } }
public void CanEnumerateAfterChainedBlock() { var chain = new ChainIndexer(this.network); this.AppendBlock(chain); ChainedHeader a = this.AppendBlock(chain); ChainedHeader b = this.AppendBlock(chain); ChainedHeader c = this.AppendBlock(chain); Assert.True(chain.EnumerateAfter(a).SequenceEqual(new[] { b, c })); ChainedHeader d = this.AppendBlock(chain); IEnumerator <ChainedHeader> enumerator = chain.EnumerateAfter(b).GetEnumerator(); enumerator.MoveNext(); Assert.True(enumerator.Current == c); chain.Initialize(b); ChainedHeader cc = this.AppendBlock(chain); ChainedHeader dd = this.AppendBlock(chain); Assert.False(enumerator.MoveNext()); }