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); }
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)); }
public void HashcodeDefaultEdge_ReferenceTypeExtremities() { var edge1 = default(SReversedEdge <int, Edge <int> >); var edge2 = new SReversedEdge <int, Edge <int> >(); Assert.AreEqual(edge1.GetHashCode(), edge2.GetHashCode()); }
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)); }
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()); }
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()); }
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); }
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); }
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()); }
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)))); }