示例#1
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());
        }
示例#2
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());
        }
示例#3
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());
        }