public void VersionCheck_RemoveAt() { var list = new HashList <int> { 5 }; IEnumerator enumerator = list.GetEnumerator(); list.RemoveAt(0); try { enumerator.MoveNext(); Assert.Fail("#1"); } catch (InvalidOperationException) { } try { enumerator.Reset(); Assert.Fail("#2"); } catch (InvalidOperationException) { } enumerator = list.GetEnumerator(); enumerator.MoveNext(); }
public void VersionCheck_Remove() { var list = new HashList <int> { 5 }; IEnumerator enumerator = list.GetEnumerator(); // version number is not incremented if item does not exist in list list.Remove(7); enumerator.MoveNext(); list.Remove(5); try { enumerator.MoveNext(); Assert.Fail("#1"); } catch (InvalidOperationException) { } try { enumerator.Reset(); Assert.Fail("#2"); } catch (InvalidOperationException) { } enumerator = list.GetEnumerator(); enumerator.MoveNext(); }
public void VersionCheck_AddRange() { var list = new HashList <int>(); IEnumerator enumerator = list.GetEnumerator(); list.AddRange(new int[] { 5, 7 }); try { enumerator.MoveNext(); Assert.Fail("#1"); } catch (InvalidOperationException) { } try { enumerator.Reset(); Assert.Fail("#2"); } catch (InvalidOperationException) { } enumerator = list.GetEnumerator(); enumerator.MoveNext(); }
public void EnumeratorIsSameInSameListAfterSubsequentCalls() { var enumerable = new HashList <Bar>(); var enumerator = enumerable.GetEnumerator(); var enumerator2 = enumerable.GetEnumerator(); Assert.IsFalse(ReferenceEquals(enumerator2, enumerator)); //because they are value-types Assert.IsTrue(enumerator2.Equals(enumerator)); }
public void EnumeratorIsObviouslyDifferentAfterListChanges() { var enumerable = new HashList <Bar>(); var enumerator = enumerable.GetEnumerator(); enumerable.Add(new Bar()); var enumerator2 = enumerable.GetEnumerator(); Assert.IsFalse(ReferenceEquals(enumerator2, enumerator)); //because they are value-types Assert.IsFalse(enumerator2.Equals(enumerator)); }
[Test] // was bug in Mono 2.10.9 public void EnumeratorIsStillSameInSubsequentCallsEvenHavingADisposalInBetween() { var enumerable = new HashList <Bar>(); var enumerator = enumerable.GetEnumerator(); enumerator.Dispose(); var enumerator2 = enumerable.GetEnumerator(); Assert.IsFalse(ReferenceEquals(enumerator2, enumerator)); //because they are value-types Assert.IsTrue(enumerator2.Equals(enumerator)); }
[Test] // was bug in Mono 2.10.9 public void DotNetDoesntThrowObjectDisposedExceptionAfterSubsequentDisposes() { var enumerable = new HashList <Bar>(); var enumerator = enumerable.GetEnumerator(); Assert.AreEqual(false, enumerator.MoveNext()); enumerator.Dispose(); Assert.AreEqual(false, enumerator.MoveNext()); }
public void TwoEnumeratorsOfTwoDifferentListsWithSameElementsAreDifferent() { var twoThree = new HashList <int> { 2, 3 }; var anotherTwoThree = new HashList <int> { 2, 3 }; Assert.IsFalse(twoThree.GetEnumerator().Equals(anotherTwoThree.GetEnumerator())); }
public void TwoEnumeratorsOfTwoDifferentListsAreDifferent() { var twoThree = new HashList <int> { 2, 3 }; var oneTwo = new HashList <int> { 2, 4 }; Assert.IsFalse(oneTwo.GetEnumerator().Equals(twoThree.GetEnumerator())); }
[Test, ExpectedException(typeof(InvalidOperationException))] // #699182 public void VersionCheck_Indexer() { var list = new HashList <int>() { 0, 2, 3 }; var enumerator = list.GetEnumerator(); list[0] = 1; enumerator.MoveNext(); }
public void Enumerator_Reset() { var l = new HashList <int>() { 4 }; var e = l.GetEnumerator(); Assert.IsTrue(e.MoveNext(), "#1"); Assert.AreEqual(4, e.Current, "#2"); e.Reset(); Assert.AreEqual(0, e.Current, "#3"); }
public void Simple() { var hashList = new HashList <int, string> { { 2, "a" }, { 2, "b" }, { 3, "b" }, { 3, "c" }, { 3, "d" }, { 4, "c" } }; var newHash = SerializeUtil.BinarySerializeDeserialize(hashList); Assert.AreNotSame(hashList, newHash); Assert.AreEqual(hashList.Count, newHash.Count); var hashListEnumerator = hashList.GetEnumerator(); var newHashEnumerator = newHash.GetEnumerator(); while (hashListEnumerator.MoveNext()) { Assert.IsTrue(newHashEnumerator.MoveNext()); Assert.AreEqual(hashListEnumerator.Current.Key, newHashEnumerator.Current.Key); var l1 = hashListEnumerator.Current.Value; var l2 = newHashEnumerator.Current.Value; Assert.AreNotSame(l1, l2); Assert.AreEqual(l1.Count, l2.Count); for (var i = 0; i < l1.Count; i++) { Assert.AreEqual(l1[i], l2[i]); } } Assert.IsFalse(newHashEnumerator.MoveNext()); }
public void Simple() { var hashList = new HashList<int, string> { {2, "a"}, {2, "b"}, {3, "b"}, {3, "c"}, {3, "d"}, {4, "c"} }; var newHash = SerializeUtil.BinarySerializeDeserialize(hashList); Assert.AreNotSame(hashList, newHash); Assert.AreEqual(hashList.Count, newHash.Count); var hashListEnumerator = hashList.GetEnumerator(); var newHashEnumerator = newHash.GetEnumerator(); while (hashListEnumerator.MoveNext()) { Assert.IsTrue(newHashEnumerator.MoveNext()); Assert.AreEqual(hashListEnumerator.Current.Key, newHashEnumerator.Current.Key); var l1 = hashListEnumerator.Current.Value; var l2 = newHashEnumerator.Current.Value; Assert.AreNotSame(l1, l2); Assert.AreEqual(l1.Count, l2.Count); for (var i = 0; i < l1.Count; i++) { Assert.AreEqual(l1[i], l2[i]); } } Assert.IsFalse(newHashEnumerator.MoveNext()); }
public IEnumerator GetEnumerator() { return(hashset.GetEnumerator()); }
public IEnumerator <int> GetEnumerator() { return(_list.GetEnumerator()); }