public void ReachabilityTable_must_merge_correctly_after_pruning()
{
var r1 = Reachability.Empty.Unreachable(nodeB, nodeA).Unreachable(nodeC, nodeD);
var r2 = r1.Unreachable(nodeA, nodeE);
var r3 = r1.Reachable(nodeB, nodeA); //nodeB pruned
var merged = r2.Merge(ImmutableHashSet.Create(nodeA, nodeB, nodeC, nodeD, nodeE), r3);
Assert.Equal(ImmutableHashSet.Create(
new Reachability.Record(nodeA, nodeE, Reachability.ReachabilityStatus.Unreachable, 1),
new Reachability.Record(nodeC, nodeD, Reachability.ReachabilityStatus.Unreachable, 1))
, merged.Records.ToImmutableHashSet());
var merged3 = r3.Merge(ImmutableHashSet.Create(nodeA, nodeB, nodeC, nodeD, nodeE), r2);
Assert.Equal(merged.Records.ToImmutableHashSet(), merged3.Records.ToImmutableHashSet());
}