Hello Christian, let me expand. There's one single way of comparing objects in NUnit, let's call it NUnit equality. The qay it works is this: If the identity of the two objects being compared is the same (Object.ReferenceEquals) then the objects are equal, otherwise other mechanisms for comparing them take place. With this I mean that what Contains does is check each element of the collection for NUnit equality with the expected item.
Are you suggesting that Contains should check only identity equality? -- You received this bug notification because you are a member of NUnit Developers, which is subscribed to NUnit V2. https://bugs.launchpad.net/bugs/1051847 Title: self contained item in array causes stack overflow Status in NUnit V2 Test Framework: Confirmed Bug description: using System.Collections; using System.Collections.Generic; using NUnit.Framework; [TestFixture] public class Reproduction { class SelfContainer : IEnumerable { public IEnumerator GetEnumerator() { yield return this; } } [Test] public void SelfContainedItemFoundInArray() { var item = new SelfContainer(); var items = new SelfContainer[] { new SelfContainer(), item }; // work around Assert.True(((ICollection<SelfContainer>)items).Contains(item)); // causes StackOverflowException Assert.Contains(item, items); } } Reproduced in NUnit 2.6.1 See also bug #491300 To manage notifications about this bug go to: https://bugs.launchpad.net/nunitv2/+bug/1051847/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~nunit-core Post to : [email protected] Unsubscribe : https://launchpad.net/~nunit-core More help : https://help.launchpad.net/ListHelp

