예제 #1
0
        public void TestBagCollectionOperation()
        {
            var bag = new HashedBag <Order>((x1, x2) => x1.Id == x2.Id);

            for (var i = 0; i < 1000; i++)
            {
                for (var j = 0; j < i + 1; j++)
                {
                    bag.Add(new Order {
                        Id = i + 1
                    });
                }
                Assert.Equal(i + 1, bag[new Order {
                                            Id = i + 1
                                        }]);
            }

            for (var i = 300; i < 400; i++)
            {
                bag.Remove(new Order {
                    Id = i
                });
                Assert.False(bag.Contains(new Order {
                    Id = i
                }));
            }
        }
예제 #2
0
        public void TestHashedBagConstructors()
        {
            var bag1 = new HashedBag <string>();

            Fill(bag1, x => x.ToString(CultureInfo.InvariantCulture));
            BagConstructorOperations(bag1);

            var bag2 = new HashedBag <Order>((x1, x2) => x1.Id == x2.Id);

            Fill(bag2, x => new Order {
                Id = x
            });
            BagConstructorOperations(bag2);

            var bag3 = new HashedBag <string>(bag1);

            BagConstructorOperations(bag3);

            var bag4 = new HashedBag <Order>(new OrderEqualityComparer());

            Fill(bag4, x => new Order {
                Id = x
            });
            BagConstructorOperations(bag4);

            var bag5 = new HashedBag <Order>(bag4, new OrderEqualityComparer().Equals);

            BagConstructorOperations(bag5);
        }
예제 #3
0
        public void TestHasedBagCollectionOperations()
        {
            var bag = new HashedBag <Order>(new OrderEqualityComparer());

            bag.Fill(x => new Order {
                Id = x
            });
            bag.CollectionOperations <Order>(bag.Count);
        }
예제 #4
0
        public void TestHashBagOperation()
        {
            var bag = new HashedBag <Order>((x1, x2) => x1.Id == x2.Id);

            TestBagOperation(bag);
        }