Exemple #1
0
        public void CrashRmv_gcAdd_NotSupported()
        {
            var rm = new RankedMap <string, int>();
            var gc = (ICollection <int>)rm.Values;

            gc.Add(9);
        }
Exemple #2
0
 public void CrashRm_Remove_ArgumentNull()
 {
     var rm = new RankedMap <string, int> {
         { "apple", 4 }
     };
     bool isRemoved = rm.Remove((string)null);
 }
Exemple #3
0
        public void UnitRm_pcRemovePair()
        {
            var rm = new RankedMap <string, int>();
            var pc = (ICollection <KeyValuePair <string, int> >)rm;

            var pair0 = new KeyValuePair <string, int> (null, 0);
            var pair1 = new KeyValuePair <string, int> ("ten", 10);
            var pair2 = new KeyValuePair <string, int> ("ten", 100);
            var pair3 = new KeyValuePair <string, int> ("twenty", 20);

            pc.Add(pair0);
            pc.Add(pair1);
            pc.Add(pair3);
            Assert.AreEqual(3, rm.Count);

            bool isRemoved = pc.Remove(pair0);

            Assert.IsTrue(isRemoved);
            Assert.AreEqual(2, rm.Count);

            isRemoved = pc.Remove(pair0);
            Assert.IsFalse(isRemoved);
            Assert.AreEqual(2, rm.Count);

            isRemoved = pc.Remove(pair2);
            Assert.AreEqual(2, rm.Count);

            isRemoved = pc.Remove(pair1);
            Assert.IsTrue(isRemoved);
            Assert.AreEqual(1, rm.Count);
        }
Exemple #4
0
        public void CrashRm_CopyTo1_ArgumentOutOfRange()
        {
            var rm     = new RankedMap <int, int>();
            var target = new KeyValuePair <int, int> [iVals1.Length];

            rm.CopyTo(target, -1);
        }
Exemple #5
0
        public void CrashRm_ocCopyTo_ArgumentNull()
        {
            var rm = new RankedMap <int, int>();
            var oc = (ICollection)rm;

            oc.CopyTo(null, 0);
        }
Exemple #6
0
        public void UnitRm_ocSyncRoot()
        {
            var rm = new RankedMap <int, int>();
            var oc = (ICollection)rm;

            Assert.IsFalse(oc.SyncRoot.GetType().IsValueType);
        }
Exemple #7
0
        public void UnitRm_pcContainsA()
        {
            var rm = new RankedMap <string, int> {
                Capacity = 4
            };
            var pc     = (ICollection <KeyValuePair <string, int> >)rm;
            var nullKv = new KeyValuePair <string, int> (null, 0);
            var zedKv  = new KeyValuePair <string, int> ("z", 0);

            foreach (var kv in greek)
            {
                pc.Add(kv);
            }

            foreach (var kv in greek)
            {
                Assert.IsTrue(pc.Contains(kv));
            }

            Assert.IsFalse(pc.Contains(zedKv));
            Assert.IsFalse(pc.Contains(nullKv));

            pc.Add(nullKv);
            Assert.IsTrue(pc.Contains(nullKv));

            pc.Add(new KeyValuePair <string, int> ("alpha", 0));
            Assert.IsTrue(pc.Contains(new KeyValuePair <string, int> ("alpha", 0)));
            Assert.IsFalse(pc.Contains(new KeyValuePair <string, int> ("alpha", 99)));
        }
Exemple #8
0
        public void UnitRm_RemoveWherePair()
        {
            var rm = new RankedMap <int, int> {
                Capacity = 6
            };

            for (int ix = 0; ix < 110; ++ix)
            {
                rm.Add(ix, -ix);
            }

            int r1 = rm.RemoveWhereElement(IsPairLeN100);

            Assert.AreEqual(10, r1);
            Assert.AreEqual(100, rm.Count);

            int c0 = rm.Count;
            int r2 = rm.RemoveWhereElement(IsPairEven);

            Assert.AreEqual(50, r2);
            foreach (int v2 in rm.Values)
            {
                Assert.IsTrue(v2 % 2 != 0);
            }

            int r2b = rm.RemoveWhereElement(IsPairEven);

            Assert.AreEqual(0, r2b);

            int r3 = rm.RemoveWhereElement(IsPairAlways);

            Assert.AreEqual(50, r3);
            Assert.AreEqual(0, rm.Count);
        }
Exemple #9
0
        public void UnitRm_ElementsBetweenA()
        {
            var rm = new RankedMap <string, int>();
            var pc = (ICollection <KeyValuePair <string, int> >)rm;

            rm.Add("Alpha", 1);
            rm.Add("Beta", 2);
            rm.Add("Omega", 24);

            int actual1 = 0;

            foreach (var kv in rm.ElementsBetween(null, "C"))
            {
                ++actual1;
            }

            pc.Add(new KeyValuePair <string, int> (null, 0));

            int actual2 = 0;

            foreach (var kv in rm.ElementsBetween(null, "C"))
            {
                ++actual2;
            }

            Assert.AreEqual(2, actual1);
            Assert.AreEqual(3, actual2);
        }
Exemple #10
0
        public void UnitRmv_EtorCurrentHotUpdate()
        {
            var rm1 = new RankedMap <int, int> {
                { 3, -3 }
            };
            var etor1 = rm1.Values.GetEnumerator();

            Assert.AreEqual(default(int), etor1.Current);
            bool ok1 = etor1.MoveNext();

            Assert.AreEqual(-3, etor1.Current);
            rm1.Remove(3);
            Assert.AreEqual(-3, etor1.Current);

            var rm2 = new RankedMap <string, int> {
                { "CC", 3 }
            };
            var etor2 = rm2.Values.GetEnumerator();

            Assert.AreEqual(default(int), etor2.Current);
            bool ok2 = etor2.MoveNext();

            Assert.AreEqual(3, etor2.Current);
            rm2.Clear();
            Assert.AreEqual(3, etor2.Current);
        }
Exemple #11
0
        public void CrashRmk_gcClear_NotSupported()
        {
            var rm = new RankedMap <int, int>();
            var gc = (ICollection <int>)rm.Keys;

            gc.Clear();
        }
Exemple #12
0
        public void UnitRmv_gcGetEnumerator()
        {
            var rm = new RankedMap <string, int?> {
                Capacity = 4
            };
            var gc = (ICollection <int?>)rm.Values;
            int n  = 10;

            for (int k = 0; k < n; ++k)
            {
                rm.Add(k.ToString(), k + 1000);
            }

            int expected = 0;
            var etor     = gc.GetEnumerator();

            var rewoundKey = etor.Current;

            Assert.AreEqual(rewoundKey, default(int?));

            while (etor.MoveNext())
            {
                var val = etor.Current;
                Assert.AreEqual(expected + 1000, val);
                ++expected;
            }
            Assert.AreEqual(n, expected);
        }
Exemple #13
0
        public void CrashRmv_gcRemove_NotSupported()
        {
            var rm = new RankedMap <int, int>();
            var gc = (ICollection <int>)rm.Values;

            gc.Remove(9);
        }
Exemple #14
0
        public void CrashRmk_gcAdd_NotSupported()
        {
            var rm = new RankedMap <string, int>();
            var gc = (ICollection <string>)rm.Keys;

            gc.Add("omega");
        }
Exemple #15
0
        public void UnitRm_gcIsReadonly()
        {
            var rm  = new RankedMap <string, int>();
            var gcp = (ICollection <KeyValuePair <string, int> >)rm;

            Assert.IsFalse(gcp.IsReadOnly);
        }
Exemple #16
0
        public void UnitRm_ElementsFrom()
        {
            var rm = new RankedMap <int, int> {
                Capacity = 4
            };

            for (int i = 1; i <= 1000; ++i)
            {
                rm.Add(i, -i);
            }

            int firstKey = -1;
            int actual1  = 0;

            foreach (var e in rm.ElementsFrom(501))
            {
                if (actual1 == 0)
                {
                    firstKey = e.Key;
                }
                ++actual1;
            }

            int actual2 = 0;

            foreach (var e in rm.ElementsFrom(-1))
            {
                ++actual2;
            }

            Assert.AreEqual(501, firstKey);
            Assert.AreEqual(500, actual1);
            Assert.AreEqual(1000, actual2);
        }
Exemple #17
0
        public void UnitRm_ocIsSynchronized()
        {
            var rm = new RankedMap <string, int>();
            var oc = (ICollection)rm;

            Assert.IsFalse(oc.IsSynchronized);
        }
Exemple #18
0
        public void UnitRm_ElementsFromMissingVal()
        {
            var rm = new RankedMap <int, int>()
            {
                Capacity = 6
            };

#if STRESS
            int n = 1000;
#else
            int n = 10;
#endif
            for (int i = 0; i < n; i += 2)
            {
                rm.Add(i, -i);
            }

            for (int i = 1; i < n - 1; i += 2)
            {
                foreach (var item in rm.ElementsFrom(i))
                {
                    Assert.AreEqual(i + 1, item.Key, "Incorrect key");
                    break;
                }
            }
        }
Exemple #19
0
        public void UnitRm_Clear()
        {
            var rm = new RankedMap <string, int> {
                Capacity = 4
            };

            rm.Add("foo", 1);
            rm.Add("foo", 2);
            rm.Add("zax", 3);
            rm.Add("zax", 4);
            rm.Add("fod", 5);

            Assert.AreEqual(5, rm.Count);

            rm.Clear();

            Assert.AreEqual(0, rm.Count);

            int actualCount = 0;

            foreach (var pair in rm)
            {
                ++actualCount;
            }

            Assert.AreEqual(0, actualCount);
        }
Exemple #20
0
        public void UnitRm_ElementsBetweenIndexes()
        {
            var rm = new RankedMap <int, int> {
                Capacity = 4
            };
            int n = 30;

            for (int ii = 0; ii < n; ++ii)
            {
                rm.Add(ii, -ii);
            }

            for (int p1 = 0; p1 < n; ++p1)
            {
                for (int p2 = p1; p2 < n; ++p2)
                {
                    int actual = 0;
                    foreach (var pair in rm.ElementsBetweenIndexes(p1, p2))
                    {
                        actual += pair.Key;
                    }

                    int expected = (p2 - p1 + 1) * (p1 + p2) / 2;
                    Assert.AreEqual(expected, actual);
                }
            }
        }
Exemple #21
0
 public void CrashRm_ContainsKey_ArgumentNull()
 {
     var rm = new RankedMap <string, int> {
         { "beta", 2 }
     };
     var zz = rm.ContainsKey(null);
 }
Exemple #22
0
        public void UnitRm_GetEnumeratorPastEnd()
        {
            var  rm2 = new RankedMap <string, int>();
            bool isMoved;
            int  actualCount = 0, total = 0;

            rm2.Add("three", 3);
            rm2.Add("one", 1);
            rm2.Add("five", 5);
            rm2.Add("three", 3);

            using (var etor = rm2.GetEnumerator())
            {
                while (etor.MoveNext())
                {
                    ++actualCount;
                    total += etor.Current.Value;
                }

                isMoved = etor.MoveNext();
            }

            Assert.AreEqual(4, actualCount);
            Assert.AreEqual(12, total);
            Assert.IsFalse(isMoved);
        }
Exemple #23
0
        public void UnitRm_CopyTo2()
        {
            var rm = new RankedMap <int, int>();
            int offset = 1, size = 20;

            for (int i = 0; i < size; ++i)
            {
                rm.Add(i + 1000, i + 10000);
            }

            var pairs = new KeyValuePair <int, int> [size + offset];

            rm.CopyTo(pairs, offset);

            for (int i = 0; i < offset; ++i)
            {
                Assert.AreEqual(0, pairs[i].Key);
                Assert.AreEqual(0, pairs[i].Value);
            }

            for (int i = 0; i < size; ++i)
            {
                Assert.AreEqual(i + 1000, pairs[i + offset].Key);
                Assert.AreEqual(i + 10000, pairs[i + offset].Value);
            }
        }
Exemple #24
0
        public void UnitRm_Comparer()
        {
            var rm = new RankedMap <string, int>();
            IComparer <string> comp = rm.Comparer;

            Assert.AreEqual(Comparer <string> .Default, comp);
        }
Exemple #25
0
        public void UnitRm_IndexOfKey1()
        {
            var rm = new RankedMap <int, int> {
                Capacity = 5
            };

            for (int ii = 0; ii < 500; ii += 2)
            {
                rm.Add(ii, ii + 1000);
            }

            for (int ii = 0; ii < 500; ii += 2)
            {
                int ix = rm.IndexOfKey(ii);
                Assert.AreEqual(ii / 2, ix);
            }

            int iw = rm.IndexOfKey(-1);

            Assert.AreEqual(~0, iw);

            int iy = rm.IndexOfKey(500);

            Assert.AreEqual(~250, iy);
        }
Exemple #26
0
        public void UnitRm_pcEtorPairPastEnd()
        {
            var rm = new RankedMap <string, int> {
                { "nine", 9 }
            };

            IEnumerator <KeyValuePair <string, int> > pcEtor = rm.GetEnumerator();

            KeyValuePair <string, int> pair0 = pcEtor.Current;

            Assert.AreEqual(default(int), pair0.Value);
            Assert.AreEqual(default(string), pair0.Key);

            pcEtor.MoveNext();
            KeyValuePair <string, int> pair1 = pcEtor.Current;

            Assert.AreEqual("nine", pair1.Key);
            Assert.AreEqual(9, pair1.Value);

            object oPair1 = ((IEnumerator)pcEtor).Current;

            Assert.AreEqual("nine", ((KeyValuePair <string, int>)oPair1).Key);
            Assert.AreEqual(9, ((KeyValuePair <string, int>)oPair1).Value);

            pcEtor.MoveNext();
            KeyValuePair <string, int> pair2 = pcEtor.Current;

            Assert.AreEqual(default(string), pair2.Key);
            Assert.AreEqual(default(int), pair2.Value);
        }
Exemple #27
0
        public void UnitRm_Remove2()
        {
            var rm0 = new RankedMap <int, int>();
            var rm1 = new RankedMap <int, int> {
                Capacity = 5
            };
            var rm2 = new RankedMap <int, int> {
                Capacity = 5
            };

            foreach (int ii in new int[] { 3, 5, 5, 7, 7, 7, 9 })
            {
                rm1.Add(ii, -ii);
            }

            foreach (int ii in new int[] { 3, 3, 3, 5, 5, 5, 7, 7, 7, 9 })
            {
                rm2.Add(ii, -ii);
            }

            var rem0 = rm0.Remove(0, 1);

            Assert.AreEqual(0, rem0);

            var rem2 = rm1.Remove(2, 2);

            Assert.AreEqual(0, rem2);

            var rem70 = rm1.Remove(7, 0);

            Assert.AreEqual(0, rem70);

            var rem7 = rm1.Remove(7, 1);

            Assert.AreEqual(1, rem7);
            Assert.AreEqual(6, rm1.Count);

            var rem5 = rm1.Remove(5, 3);

            Assert.AreEqual(2, rem5);
            Assert.AreEqual(4, rm1.Count);

            var rem9 = rm1.Remove(10);

            Assert.IsFalse(rem9);

            var rem53 = rm2.Remove(5, 3);

            Assert.AreEqual(3, rem53);

            var rem33 = rm2.Remove(3, Int32.MaxValue);

            Assert.AreEqual(3, rem33);

            var rem99 = rm2.Remove(9, 9);

            Assert.AreEqual(1, rem99);

            Assert.AreEqual(3, rm2.Count);
        }
Exemple #28
0
        public void UnitRm_EtorCurrentHotUpdate()
        {
            var rm1  = new RankedMap <int, int>();
            var kv1  = new KeyValuePair <int, int> (1, -1);
            var kvd1 = new KeyValuePair <int, int> (default(int), default(int));

            rm1.Add(kv1.Key, kv1.Value);
            var etor1 = rm1.GetEnumerator();

            Assert.AreEqual(kvd1, etor1.Current);
            bool ok1 = etor1.MoveNext();

            Assert.AreEqual(kv1, etor1.Current);
            rm1.Remove(kv1.Key);
            Assert.AreEqual(kv1, etor1.Current);

            var rm2  = new RankedMap <string, int>();
            var kv2  = new KeyValuePair <string, int> ("MM", 13);
            var kvd2 = new KeyValuePair <string, int> (default(string), default(int));

            rm2.Add(kv2.Key, kv2.Value);
            var etor2 = rm2.GetEnumerator();

            Assert.AreEqual(kvd2, etor2.Current);
            bool ok2 = etor2.MoveNext();

            Assert.AreEqual(kv2, etor2.Current);
            rm2.Clear();
            Assert.AreEqual(kv2, etor2.Current);
        }
Exemple #29
0
        public void UnitRm_RemoveAll()
        {
            var rm0 = new RankedMap <int, int>();
            var rm  = new RankedMap <int, int> {
                Capacity = 4
            };

            foreach (var ii in new int[] { 3, 3, 5, 5, 7, 7 })
            {
                rm.Add(ii, -ii);
            }

            int rem0 = rm0.RemoveAll(new int[] { 2 });

            Assert.AreEqual(0, rem0);

            int rem2 = rm.RemoveAll(new int[] { 2 });

            Assert.AreEqual(0, rem2);

            int rem57 = rm.RemoveAll(new int[] { 3, 3, 3, 7 });

            Assert.AreEqual(3, rem57);
            Assert.IsTrue(System.Linq.Enumerable.SequenceEqual(new int[] { 5, 5, 7 }, rm.Keys));
        }
Exemple #30
0
        public void UnitRmk_gcIsSynchronized()
        {
            var rm = new RankedMap <int, int>();
            var oc = (ICollection)rm.Keys;

            Assert.IsFalse(oc.IsSynchronized);
        }