public void Tri_GetAdjacentTris_Should_Work() { var p0 = new Plan.Point(0, 0); var p1 = new Plan.Point(1, 0); var p2 = new Plan.Point(0, 1); var p3 = new Plan.Point(3, 0); var p4 = new Plan.Point(0, 3); var p5 = new Plan.Point(3, 3); var p6 = new Plan.Point(0, -1); var t0 = new Plan.Tri(new HashSet <Plan.Point>() { p0, p1, p2 }); var t1 = new Plan.Tri(new HashSet <Plan.Point>() { p1, p2, p3 }); var t2 = new Plan.Tri(new HashSet <Plan.Point>() { p2, p3, p4 }); var t3 = new Plan.Tri(new HashSet <Plan.Point>() { p3, p4, p5 }); var t4 = new Plan.Tri(new HashSet <Plan.Point>() { p0, p2, p6 }); var expectedAdjacentToT0 = new HashSet <Plan.Tri>() { t1, t4 }; var expectedAdjacentToT3 = new HashSet <Plan.Tri>() { t2 }; HashSet <Plan.Tri> adjacentToT0, adjacentToT3; adjacentToT0 = t0.GetAdjacentTris(); adjacentToT3 = t3.GetAdjacentTris(); adjacentToT0.Should().BeEquivalentTo(expectedAdjacentToT0); adjacentToT3.Should().BeEquivalentTo(expectedAdjacentToT3); }