public void TestNavigateTowardsInvalidChains()
{
// create distinct chains
var fakeHeadersA = new FakeHeaders();
var header0A = fakeHeadersA.GenesisChained();
var header1A = fakeHeadersA.NextChained();
var fakeHeadersB = new FakeHeaders();
var header0B = fakeHeadersB.GenesisChained();
var header1B = fakeHeadersB.NextChained();
var chainEmpty = new ChainBuilder().ToImmutable();
var chainA = new ChainBuilder(new[] { header0A, header1A }).ToImmutable();
var chainB = new ChainBuilder(new[] { header0B, header1B, }).ToImmutable();
// unrelated chains should error
AssertMethods.AssertThrows<InvalidOperationException>(() => chainA.NavigateTowards(chainB).ToList());
AssertMethods.AssertThrows<InvalidOperationException>(() => chainB.NavigateTowards(chainA).ToList());
}