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); }
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)); }
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)); }