private void ExpectOppositeEdgesAreEqualAsUndirected(VerticalPrismalSurface surface, IPolysurfaceVertex v1, IPolysurfaceVertex v2)
        {
            var edge1 = surface.GetEdge(v1, v2);
            var edge2 = surface.GetEdge(v2, v1);

            Expect(edge1, Is.EqualTo(edge2).Using(surface.UndirectedEdgeComparer));
        }
        private void ExpectOppositeEdgesAreDifferent(VerticalPrismalSurface surface, IPolysurfaceVertex v1, IPolysurfaceVertex v2)
        {
            var edge1 = surface.GetEdge(v1, v2);
            var edge2 = surface.GetEdge(v2, v1);

            Expect(edge1, Is.Not.EqualTo(edge2));
        }
        private void ExpectGetEdgeReturnsCorrectEdge(VerticalPrismalSurface surface, IPolysurfaceVertex v1, IPolysurfaceVertex v2)
        {
            var edge1 = surface.GetEdge(v1, v2);

            Expect(edge1, Is.Not.Null);
            Expect(edge1.Source, Is.EqualTo(v1));
            Expect(edge1.Target, Is.EqualTo(v2));

            var edge2 = surface.GetEdge(v2, v1);

            Expect(edge2, Is.Not.Null);
            Expect(edge2.Source, Is.EqualTo(v2));
            Expect(edge2.Target, Is.EqualTo(v1));
        }
        private void ExpectTwoConstructionsOfEdgeCoincide(VerticalPrismalSurface surface, IPolysurfaceVertex v1, IPolysurfaceVertex v2)
        {
            var edge1 = surface.GetEdge(v1, v2);
            var edge2 = v1.Edges.Where(e => e.Target.Equals(v2)).Single();

            Expect(edge1, Is.EqualTo(edge2));
            Expect(edge1, Is.EqualTo(edge2).Using(surface.UndirectedEdgeComparer));
        }