Esempio n. 1
0
        public void StructTupleEqualityWithReferenceTypesInEquatableWrapper()
        {
            var o1 = new TestNonEquatable(1);
            var o2 = new TestNonEquatable(2);
            var o3 = new TestNonEquatable(3);

            StructTester.TestEquality(
                baseValue: StructTuple.Create(EquatableClass.Create(o1), EquatableClass.Create(o2)),
                equalValue: StructTuple.Create(EquatableClass.Create(o1), EquatableClass.Create(o2)),
                notEqualValues: new[]
            {
                StructTuple.Create(EquatableClass.Create(o1), EquatableClass.Create(o3)),
                StructTuple.Create(EquatableClass.Create(o2), EquatableClass.Create(o2)),
                StructTuple.Create(EquatableClass.Create(o2), EquatableClass.Create(o1)),
                StructTuple.Create <EquatableClass <TestNonEquatable>, EquatableClass <TestNonEquatable> >(null, o2),
                StructTuple.Create <EquatableClass <TestNonEquatable>, EquatableClass <TestNonEquatable> >(o1, null)
            },
                eq: (left, right) => left == right,
                neq: (left, right) => left != right);

            StructTester.TestEquality(
                baseValue: StructTuple.Create <EquatableClass <TestNonEquatable>, EquatableClass <TestNonEquatable> >(o1, o2),
                equalValue: StructTuple.Create <EquatableClass <TestNonEquatable>, EquatableClass <TestNonEquatable> >(new TestNonEquatable(1), new TestNonEquatable(2)),
                notEqualValues: new[]
            {
                StructTuple.Create <EquatableClass <TestNonEquatable>, EquatableClass <TestNonEquatable> >(new TestNonEquatable(1), new TestNonEquatable(3)),
                StructTuple.Create <EquatableClass <TestNonEquatable>, EquatableClass <TestNonEquatable> >(new TestNonEquatable(2), new TestNonEquatable(2)),
                StructTuple.Create <EquatableClass <TestNonEquatable>, EquatableClass <TestNonEquatable> >(new TestNonEquatable(2), new TestNonEquatable(1)),
                StructTuple.Create <EquatableClass <TestNonEquatable>, EquatableClass <TestNonEquatable> >(null, null)
            },
                eq: (left, right) => left == right,
                neq: (left, right) => left != right);
        }
Esempio n. 2
0
        public static void TestarEquatable()
        {
            var lista = new List <EquatableClass>();

            lista.Add(new EquatableClass {
                Id = 1, Nome = "A"
            });
            lista.Add(new EquatableClass {
                Id = 2, Nome = "B"
            });
            lista.Add(new EquatableClass {
                Id = 4, Nome = "C"
            });
            lista.Add(new EquatableClass {
                Id = 4, Nome = "C"
            });

            var equa3 = new EquatableClass {
                Id = 2, Nome = "A"
            };

            var result = lista.Contains(equa3);

            //O contains usa o equatable para verificar se os objetos são iguais
            Console.WriteLine("Contains");
            Console.WriteLine("Contem {0}: {1}", equa3, result);

            //O distinct usa o equatable e gethashcode para verificar se dicionário hash é igual
            Console.WriteLine("Distinct");
            lista.Distinct().ToList().ForEach(Console.WriteLine);
        }
        public void OperatorEquality()
        {
            EquatableClass eNull = null;
            EquatableClass e1    = new EquatableClass(1);
            EquatableClass e1b   = new EquatableClass(1);
            EquatableClass e2    = new EquatableClass(2);

            Assert.IsTrue(ObjectImpl.OperatorEquality(eNull, null));
            Assert.IsTrue(ObjectImpl.OperatorEquality(e1, e1));
            Assert.IsTrue(ObjectImpl.OperatorEquality(e1, e1b));
            Assert.IsFalse(ObjectImpl.OperatorEquality(e1, eNull));
            Assert.IsFalse(ObjectImpl.OperatorEquality(eNull, e1));
            Assert.IsFalse(ObjectImpl.OperatorEquality(e1, e2));
        }
Esempio n. 4
0
        public void Test_ContainsAndIndexOf_EquatableItem()
        {
            List <EquatableClass> list  = new List <EquatableClass> ();
            EquatableClass        item0 = new EquatableClass(0);
            EquatableClass        item1 = new EquatableClass(1);

            list.Add(item0);
            list.Add(item1);
            list.Add(item0);

            Assert.AreEqual(true, list.Contains(item0), "#0");
            Assert.AreEqual(true, list.Contains(new EquatableClass(0)), "#1");
            Assert.AreEqual(0, list.IndexOf(item0), "#2");
            Assert.AreEqual(0, list.IndexOf(new EquatableClass(0)), "#3");
            Assert.AreEqual(2, list.LastIndexOf(item0), "#4");
            Assert.AreEqual(2, list.LastIndexOf(new EquatableClass(0)), "#5");
        }
		public void Constructor(string s, int i)
		{
			EquatableClass ec = new EquatableClass(s, i);
			Assert.That(ec.Text, Is.EqualTo(s));
			Assert.That(ec.Count, Is.EqualTo(i));
		}