Akka.Cluster.Tests.ReachabilitySpec.ReachabilityTable_must_merge_by_taking_allowed_set_into_account C# (CSharp) Method

ReachabilityTable_must_merge_by_taking_allowed_set_into_account() private method

        public void ReachabilityTable_must_merge_by_taking_allowed_set_into_account()
        {
            var r1 = Reachability.Empty.Unreachable(nodeB, nodeA).Unreachable(nodeC, nodeD);
            var r2 = r1.Reachable(nodeB, nodeA).Unreachable(nodeD, nodeE).Unreachable(nodeC, nodeA);
            // nodeD not in allowed set
            var allowed = ImmutableHashSet.Create(nodeA, nodeB, nodeC, nodeE);
            var merged = r1.Merge(allowed, r2);

            Assert.Equal(Reachability.ReachabilityStatus.Reachable, merged.Status(nodeB, nodeA));
            Assert.Equal(Reachability.ReachabilityStatus.Unreachable, merged.Status(nodeC, nodeA));
            Assert.Equal(Reachability.ReachabilityStatus.Reachable, merged.Status(nodeC, nodeD));
            Assert.Equal(Reachability.ReachabilityStatus.Reachable, merged.Status(nodeD, nodeE));
            Assert.Equal(Reachability.ReachabilityStatus.Reachable, merged.Status(nodeE, nodeA));

            Assert.False(merged.IsReachable(nodeA));
            Assert.True(merged.IsReachable(nodeD));
            Assert.True(merged.IsReachable(nodeE));

            Assert.Equal(ImmutableHashSet.Create(nodeB, nodeC), merged.Versions.Keys.ToImmutableHashSet());

            var merged2 = r2.Merge(allowed, r1);
            Assert.Equal(merged.Records.ToImmutableHashSet(), merged2.Records.ToImmutableHashSet());
            Assert.Equal(merged.Versions, merged2.Versions);
        }