Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        [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));
        }
Ejemplo n.º 7
0
        [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());
        }
Ejemplo n.º 8
0
        public void TwoEnumeratorsOfTwoDifferentListsWithSameElementsAreDifferent()
        {
            var twoThree = new HashList <int> {
                2, 3
            };
            var anotherTwoThree = new HashList <int> {
                2, 3
            };

            Assert.IsFalse(twoThree.GetEnumerator().Equals(anotherTwoThree.GetEnumerator()));
        }
Ejemplo n.º 9
0
        public void TwoEnumeratorsOfTwoDifferentListsAreDifferent()
        {
            var twoThree = new HashList <int> {
                2, 3
            };
            var oneTwo = new HashList <int> {
                2, 4
            };

            Assert.IsFalse(oneTwo.GetEnumerator().Equals(twoThree.GetEnumerator()));
        }
Ejemplo n.º 10
0
        [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();
        }
Ejemplo n.º 11
0
        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");
        }
Ejemplo n.º 12
0
        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());
        }
Ejemplo n.º 13
0
        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());
        }
Ejemplo n.º 14
0
 public IEnumerator GetEnumerator()
 {
     return(hashset.GetEnumerator());
 }
Ejemplo n.º 15
0
 public IEnumerator <int> GetEnumerator()
 {
     return(_list.GetEnumerator());
 }