Ejemplo n.º 1
0
 public static void AssertSameReversedEdge(
     Edge <int> edge,
     SReversedEdge <int, Edge <int> > reversedEdge)
 {
     Assert.AreEqual(new SReversedEdge <int, Edge <int> >(edge), reversedEdge);
     Assert.AreSame(edge, reversedEdge.OriginalEdge);
 }
Ejemplo n.º 2
0
        public void Equals()
        {
            var wrappedEdge = new Edge <int>(1, 2);
            var edge1       = new SReversedEdge <int, Edge <int> >(wrappedEdge);
            var edge2       = new SReversedEdge <int, Edge <int> >(wrappedEdge);
            var edge3       = new SReversedEdge <int, Edge <int> >(new Edge <int>(1, 2));
            var edge4       = new SReversedEdge <int, Edge <int> >(new Edge <int>(2, 1));

            Assert.AreEqual(edge1, edge1);

            Assert.AreEqual(edge1, edge2);
            Assert.AreEqual(edge2, edge1);
            Assert.IsTrue(edge1.Equals((object)edge2));
            Assert.IsTrue(edge1.Equals(edge2));
            Assert.IsTrue(edge2.Equals(edge1));

            Assert.AreNotEqual(edge1, edge3);
            Assert.AreNotEqual(edge3, edge1);
            Assert.IsFalse(edge1.Equals((object)edge3));
            Assert.IsFalse(edge1.Equals(edge3));
            Assert.IsFalse(edge3.Equals(edge1));

            Assert.AreNotEqual(edge1, edge4);
            Assert.AreNotEqual(edge4, edge1);
            Assert.IsFalse(edge1.Equals((object)edge4));
            Assert.IsFalse(edge1.Equals(edge4));
            Assert.IsFalse(edge4.Equals(edge1));

            Assert.AreNotEqual(edge1, null);
            Assert.IsFalse(edge1.Equals(null));
        }
Ejemplo n.º 3
0
        public void HashcodeDefaultEdge_ReferenceTypeExtremities()
        {
            var edge1 = default(SReversedEdge <int, Edge <int> >);
            var edge2 = new SReversedEdge <int, Edge <int> >();

            Assert.AreEqual(edge1.GetHashCode(), edge2.GetHashCode());
        }
Ejemplo n.º 4
0
        public void EqualsDefaultEdge_ReferenceTypeExtremities()
        {
            var edge1 = default(SReversedEdge <int, Edge <int> >);
            var edge2 = new SReversedEdge <int, Edge <int> >();

            Assert.AreEqual(edge1, edge2);
            Assert.AreEqual(edge2, edge1);
            Assert.IsTrue(edge1.Equals(edge2));
            Assert.IsTrue(edge2.Equals(edge1));
        }
Ejemplo n.º 5
0
        public void ObjectToString()
        {
            var edge1 = new SReversedEdge <int, Edge <int> >(new Edge <int>(1, 2));
            var edge2 = new SReversedEdge <int, Edge <int> >(new Edge <int>(2, 1));
            var edge3 = new SReversedEdge <int, UndirectedEdge <int> >(new UndirectedEdge <int>(1, 2));

            Assert.AreEqual("R(1 -> 2)", edge1.ToString());
            Assert.AreEqual("R(2 -> 1)", edge2.ToString());
            Assert.AreEqual("R(1 <-> 2)", edge3.ToString());
        }
Ejemplo n.º 6
0
        public void Hashcode()
        {
            var wrappedEdge = new Edge <int>(1, 2);
            var edge1       = new SReversedEdge <int, Edge <int> >(wrappedEdge);
            var edge2       = new SReversedEdge <int, Edge <int> >(wrappedEdge);
            var edge3       = new SReversedEdge <int, Edge <int> >(new Edge <int>(1, 2));
            var edge4       = new SReversedEdge <int, Edge <int> >(new Edge <int>(2, 1));

            Assert.AreEqual(edge1.GetHashCode(), edge2.GetHashCode());
            Assert.AreNotEqual(edge1.GetHashCode(), edge3.GetHashCode());
            Assert.AreNotEqual(edge1.GetHashCode(), edge4.GetHashCode());
        }
Ejemplo n.º 7
0
        public void Equals2()
        {
            var edge1 = new SReversedEdge <int, EquatableEdge <int> >(new EquatableEdge <int>(1, 2));
            var edge2 = new SReversedEdge <int, EquatableEdge <int> >(new EquatableEdge <int>(1, 2));
            var edge3 = new SReversedEdge <int, EquatableEdge <int> >(new EquatableEdge <int>(2, 1));

            Assert.AreEqual(edge1, edge1);
            Assert.AreEqual(edge1, edge2);
            Assert.AreNotEqual(edge1, edge3);

            Assert.AreNotEqual(edge1, null);
        }
Ejemplo n.º 8
0
        public void Equals2()
        {
            var edge1 = new SReversedEdge <int, EquatableEdge <int> >(new EquatableEdge <int>(1, 2));
            var edge2 = new SReversedEdge <int, EquatableEdge <int> >(new EquatableEdge <int>(1, 2));
            var edge3 = new SReversedEdge <int, EquatableEdge <int> >(new EquatableEdge <int>(2, 1));

            Assert.AreEqual(edge1, edge1);
            Assert.AreEqual(edge1, edge2);
            Assert.IsTrue(edge1.Equals((object)edge2));
            Assert.AreNotEqual(edge1, edge3);

            Assert.IsFalse(edge1.Equals(null));
            Assert.AreNotEqual(edge1, null);
        }
Ejemplo n.º 9
0
        public void SReversedEdgeTestEverything()
        {
            var originalEdge1 = new SEquatableEdge <int>(0, 1);
            var reversedEdge1 = new SReversedEdge <int, SEquatableEdge <int> >(originalEdge1);

            Assert.AreEqual(1, reversedEdge1.Source);
            Assert.AreEqual(0, reversedEdge1.Target);
            Assert.AreEqual(String.Format("R({0}->{1})", 0, 1), reversedEdge1.ToString());

            //equatable parts
            var originalEdge2 = new SEquatableEdge <int>(2, 3);
            var reversedEdge2 = new SReversedEdge <int, SEquatableEdge <int> >(originalEdge2);

            Assert.IsFalse(reversedEdge1.Equals(reversedEdge2));
            Assert.IsFalse(reversedEdge1.Equals(1));
            Assert.IsFalse(reversedEdge1 == reversedEdge2);
            Assert.IsTrue(reversedEdge1 != reversedEdge2);
            Assert.IsFalse(reversedEdge1.GetHashCode() == reversedEdge2.GetHashCode());
        }
Ejemplo n.º 10
0
        protected static void ContainsEdge_EquatableEdge_ImmutableGraph_ReversedTest(
            [NotNull] IMutableVertexAndEdgeSet <int, EquatableEdge <int> > wrappedGraph,
            [NotNull, InstantHandle] Func <IEdgeSet <int, SReversedEdge <int, EquatableEdge <int> > > > createGraph)
        {
            IEdgeSet <int, SReversedEdge <int, EquatableEdge <int> > > graph = createGraph();

            var edge1              = new EquatableEdge <int>(1, 2);
            var reversedEdge1      = new SReversedEdge <int, EquatableEdge <int> >(edge1);
            var edge2              = new EquatableEdge <int>(1, 3);
            var reversedEdge2      = new SReversedEdge <int, EquatableEdge <int> >(edge2);
            var edge3              = new EquatableEdge <int>(2, 1);
            var reversedEdge3      = new SReversedEdge <int, EquatableEdge <int> >(edge3);
            var edge4              = new EquatableEdge <int>(2, 2);
            var reversedEdge4      = new SReversedEdge <int, EquatableEdge <int> >(edge4);
            var otherEdge1         = new EquatableEdge <int>(1, 2);
            var reversedOtherEdge1 = new SReversedEdge <int, EquatableEdge <int> >(otherEdge1);

            Assert.IsFalse(graph.ContainsEdge(reversedEdge1));
            Assert.IsFalse(graph.ContainsEdge(reversedEdge2));
            Assert.IsFalse(graph.ContainsEdge(reversedEdge3));
            Assert.IsFalse(graph.ContainsEdge(reversedEdge4));
            Assert.IsFalse(graph.ContainsEdge(reversedOtherEdge1));

            wrappedGraph.AddVerticesAndEdge(edge1);
            graph = createGraph();
            Assert.IsTrue(graph.ContainsEdge(reversedEdge1));
            Assert.IsFalse(graph.ContainsEdge(reversedEdge2));
            Assert.IsFalse(graph.ContainsEdge(reversedEdge3));
            Assert.IsFalse(graph.ContainsEdge(reversedEdge4));
            Assert.IsTrue(graph.ContainsEdge(reversedOtherEdge1));

            wrappedGraph.AddVerticesAndEdge(edge2);
            graph = createGraph();
            Assert.IsTrue(graph.ContainsEdge(reversedEdge1));
            Assert.IsTrue(graph.ContainsEdge(reversedEdge2));
            Assert.IsFalse(graph.ContainsEdge(reversedEdge3));
            Assert.IsFalse(graph.ContainsEdge(reversedEdge4));
            Assert.IsTrue(graph.ContainsEdge(reversedOtherEdge1));

            wrappedGraph.AddVerticesAndEdge(edge3);
            graph = createGraph();
            Assert.IsTrue(graph.ContainsEdge(reversedEdge1));
            Assert.IsTrue(graph.ContainsEdge(reversedEdge2));
            Assert.IsTrue(graph.ContainsEdge(reversedEdge3));
            Assert.IsFalse(graph.ContainsEdge(reversedEdge4));
            Assert.IsTrue(graph.ContainsEdge(reversedOtherEdge1));

            wrappedGraph.AddVerticesAndEdge(edge4);
            graph = createGraph();
            Assert.IsTrue(graph.ContainsEdge(reversedEdge1));
            Assert.IsTrue(graph.ContainsEdge(reversedEdge2));
            Assert.IsTrue(graph.ContainsEdge(reversedEdge3));
            Assert.IsTrue(graph.ContainsEdge(reversedEdge4));
            Assert.IsTrue(graph.ContainsEdge(reversedOtherEdge1));

            wrappedGraph.AddVerticesAndEdge(otherEdge1);
            graph = createGraph();
            Assert.IsTrue(graph.ContainsEdge(reversedEdge1));
            Assert.IsTrue(graph.ContainsEdge(reversedEdge2));
            Assert.IsTrue(graph.ContainsEdge(reversedEdge3));
            Assert.IsTrue(graph.ContainsEdge(reversedEdge4));
            Assert.IsTrue(graph.ContainsEdge(reversedOtherEdge1));

            // Both vertices not in graph
            Assert.IsFalse(
                graph.ContainsEdge(
                    new SReversedEdge <int, EquatableEdge <int> >(
                        new EquatableEdge <int>(0, 10))));
            // Source not in graph
            Assert.IsFalse(
                graph.ContainsEdge(
                    new SReversedEdge <int, EquatableEdge <int> >(
                        new EquatableEdge <int>(0, 1))));
            // Target not in graph
            Assert.IsFalse(
                graph.ContainsEdge(
                    new SReversedEdge <int, EquatableEdge <int> >(
                        new EquatableEdge <int>(1, 0))));
        }