コード例 #1
0
        public void Exists()
        {
            var bag1 = new Bag <double>(new[] { 4.5, 187.4, 1.2, 7.6, -7.6, -0.04, 1.2, 1.78, 10.11, 187.4 });

            Assert.IsTrue(bag1.Exists(d => d > 100));
            Assert.IsTrue(bag1.Exists(d => Math.Abs(d) == 0.04));
            Assert.IsFalse(bag1.Exists(d => d < -10.0));
            bag1.Clear();
            Assert.IsFalse(bag1.Exists(d => Math.Abs(d) == 0.04));
        }
コード例 #2
0
        public void CountWhere()
        {
            Bag <double> bag1 = new Bag <double>(new double[] { 4.5, 187.4, 1.2, 7.6, -7.6, -0.04, 1.2, 1.78, 10.11, 187.4 });

            Assert.AreEqual(0, bag1.CountWhere(d => d > 200));
            Assert.AreEqual(7, bag1.CountWhere(d => Math.Abs(d) < 10));
            Assert.AreEqual(10, bag1.CountWhere(d => d > -10));
            Assert.AreEqual(5, bag1.CountWhere(d => Math.Abs(d) > 5));
            bag1.Clear();
            Assert.AreEqual(0, bag1.CountWhere(d => Math.Abs(d) < 10));
        }
コード例 #3
0
        public void TrueForAll()
        {
            Bag <double> bag1 = new Bag <double>(new double[] { 4.5, 187.4, 1.2, 7.6, -7.6, -0.04, 1.2, 1.78, 10.11, 187.4 });

            Assert.IsFalse(bag1.TrueForAll(d => d > 100));
            Assert.IsFalse(bag1.TrueForAll(d => Math.Abs(d) < 10));
            Assert.IsTrue(bag1.TrueForAll(d => d > -10));
            Assert.IsTrue(bag1.TrueForAll(d => Math.Abs(d) < 200));
            bag1.Clear();
            Assert.IsTrue(bag1.TrueForAll(d => Math.Abs(d) == 0.04));
        }
コード例 #4
0
        public void FailFastEnumerator2()
        {
            var bag1 = new Bag <double>();

            double d = 1.218034;

            for (var i = 0; i < 50; ++i)
            {
                bag1.Add(d);
                d = d * 1.3451 - .31;
            }

            // should throw once the bag is modified.
            foreach (double k in bag1.Where(k => k > 3.0))
            {
                bag1.Clear();
            }
        }
コード例 #5
0
        public void AddMany()
        {
            string[] s_array = { "FOO", "x", "elmer", "fudd", "Clapton", null };
            var      bag1    = new Bag <string>(StringComparer.InvariantCultureIgnoreCase)
            {
                "foo", "Eric", "Clapton"
            };

            bag1.AddMany(s_array);

            InterfaceTests.TestReadWriteCollectionGeneric(bag1,
                                                          new[]
                                                          { null, "Clapton", "Clapton", "elmer", "Eric", "foo", "foo", "fudd", "x" },
                                                          false);

            bag1.Clear();
            bag1.Add("foo");
            bag1.Add("Eric");
            bag1.AddMany(bag1);
            InterfaceTests.TestReadWriteCollectionGeneric(bag1, new[] { "Eric", "Eric", "foo", "foo" }, false);
        }
コード例 #6
0
        public void CountAndClear()
        {
            var bag1 = new Bag <string>(StringComparer.InvariantCultureIgnoreCase);

            Assert.AreEqual(0, bag1.Count);
            bag1.Add("hello");
            Assert.AreEqual(1, bag1.Count);
            bag1.Add("foo");
            Assert.AreEqual(2, bag1.Count);
            bag1.Add("");
            Assert.AreEqual(3, bag1.Count);
            bag1.Add("HELLO");
            Assert.AreEqual(4, bag1.Count);
            bag1.Add("foo");
            Assert.AreEqual(5, bag1.Count);
            bag1.Remove("");
            Assert.AreEqual(4, bag1.Count);
            bag1.Add(null);
            Assert.AreEqual(5, bag1.Count);
            bag1.Add("Hello");
            Assert.AreEqual(6, bag1.Count);
            bag1.Add("Eric");
            Assert.AreEqual(7, bag1.Count);
            bag1.RemoveAllCopies("hElLo");
            Assert.AreEqual(4, bag1.Count);
            bag1.Add(null);
            Assert.AreEqual(5, bag1.Count);
            bag1.Clear();
            Assert.AreEqual(0, bag1.Count);

            var found = false;

            foreach (var s in bag1)
            {
                found = true;
            }

            Assert.IsFalse(found);
        }
コード例 #7
0
        public void Remove()
        {
            var bag1 = new Bag <string>(StringComparer.InvariantCultureIgnoreCase);

            var b = bag1.Remove("Eric");

            Assert.IsFalse(b);
            bag1.Add("hello");
            bag1.Add("foo");
            bag1.Add(null);
            bag1.Add(null);
            bag1.Add("HELLO");
            bag1.Add("Hello");
            b = bag1.Remove("hello");
            Assert.IsTrue(b);
            InterfaceTests.TestCollection(bag1, new string[] { null, null, "foo", "hello", "hello" }, false);
            b = bag1.Remove("Hello");
            Assert.IsTrue(b);
            b = bag1.Remove(null);
            Assert.IsTrue(b);
            b = bag1.Remove(null);
            Assert.IsTrue(b);
            b = bag1.Remove(null);
            Assert.IsFalse(b);
            bag1.Add("Hello");
            bag1.Add("Eric");
            bag1.Add(null);
            b = bag1.Remove(null);
            Assert.IsTrue(b);
            bag1.Add("ERIC");
            b = bag1.Remove("eRic");
            Assert.IsTrue(b);
            b = bag1.Remove("eRic");
            Assert.IsTrue(b);
            bag1.Clear();
            b = bag1.Remove("");
            Assert.IsFalse(b);
        }
コード例 #8
0
        public void RemoveMany()
        {
            var bag1 = new Bag <string>(StringComparer.InvariantCultureIgnoreCase)
            {
                "foo", "Eric", "Clapton", null, "Foo", "fudd", "elmer"
            };

            string[] s_array = { "FOO", "jasmine", "eric", null };
            int      count   = bag1.RemoveMany(s_array);

            Assert.AreEqual(3, count);

            InterfaceTests.TestReadWriteCollectionGeneric(bag1, new[] { "Clapton", "elmer", "foo", "fudd" }, false);

            bag1.Clear();
            bag1.Add("foo");
            bag1.Add("Eric");
            bag1.Add("Clapton");
            bag1.Add(null);
            bag1.Add("Foo");
            count = bag1.RemoveMany(bag1);
            Assert.AreEqual(5, count);
            Assert.AreEqual(0, bag1.Count);
        }