コード例 #1
0
        public void TestHashedBimapDictionaryIndexerSetNotExistingValue()
        {
            var bimap = new HashedBimap <int, int>();

            Fill(bimap, x => x, y => y);
            BimapDictionaryIndexerSetNotExistingValue(bimap);
        }
コード例 #2
0
        public void TestHashBimapDictionaryIndexer()
        {
            var bimap = new HashedBimap <int, int>();

            Fill(bimap, x => x, y => y);
            DictionaryIndexer(bimap);
            AssertBimapDictionaryIndexer(bimap);
        }
コード例 #3
0
        public void TestHashedBimapDictionaryOperations()
        {
            var bimap = new HashedBimap <Order, Bill>(new OrderEqualityComparer(), new BillEqualityComparer());

            bimap.DictionaryOperations(x => new Order {
                Id = x
            }, y => new Bill {
                Id = y
            }, new BillEqualityComparer().Equals);
        }
コード例 #4
0
        public void TestHashBimapCollectionRemove()
        {
            var bimap = new HashedBimap <Order, Bill>(new OrderEqualityComparer(), new BillEqualityComparer());

            Fill(bimap, x => new Order {
                Id = x
            }, y => new Bill {
                Id = y
            });
            CollectionRemove(bimap);
        }
コード例 #5
0
        public void TestTreeBimapComplexConstructor()
        {
            var hashBimap = new HashedBimap <Order, Bill>(new OrderEqualityComparer(), new BillEqualityComparer());

            for (var i = 0; i < 10000; i++)
            {
                hashBimap.Add(new Order {
                    Id = i
                }, new Bill {
                    Id = i
                });
            }

            var treeBimap = new TreeBimap <Order, Bill>(hashBimap, (x1, x2) => x1.Id - x2.Id, (y1, y2) => y1.Id - y2.Id);

            for (var i = 0; i < 10000; i++)
            {
                Assert.True(treeBimap.ContainsKey(new Order {
                    Id = i
                }));
                Assert.True(treeBimap.ContainsValue(new Bill {
                    Id = i
                }));
                Assert.True(((ICollection <KeyValuePair <Order, Bill> >)treeBimap).Contains(new KeyValuePair <Order, Bill>(new Order {
                    Id = i
                }, new Bill {
                    Id = i
                })));
            }

            var bimap2 = new HashedBimap <int, int>();

            for (var i = 0; i < 10000; i++)
            {
                bimap2.Add(i, i + 1);
            }

            var treeBimap2 = new TreeBimap <int, int>(bimap2);

            for (var i = 0; i < 10000; i++)
            {
                Assert.True(treeBimap2.ContainsKey(i));
                Assert.True(treeBimap2.ContainsValue(i + 1));
                Assert.True(((ICollection <KeyValuePair <int, int> >)treeBimap2).Contains(new KeyValuePair <int, int>(i, i + 1)));
            }
        }
コード例 #6
0
        public void TestHashBimapContructor()
        {
            var hashBimap1 = new HashedBimap <Order, Bill>((x1, x2) => x1.Id == x2.Id, (y1, y2) => y1.Id == y2.Id);

            BimapOperation(hashBimap1, x => new Order {
                Id = x
            }, y => new Bill {
                Id = y
            }, new OrderEqualityComparer(), new BillEqualityComparer());

            var hashBimap2 = new HashedBimap <Order, Bill>(new OrderEqualityComparer(), new BillEqualityComparer());

            BimapOperation(hashBimap2, x => new Order {
                Id = x
            }, y => new Bill {
                Id = y
            }, new OrderEqualityComparer(), new BillEqualityComparer());

            var hashBimap3 = new HashedBimap <Order, Bill>(10000, new OrderEqualityComparer(), new BillEqualityComparer());

            BimapOperation(hashBimap3, x => new Order {
                Id = x
            }, y => new Bill {
                Id = y
            }, new OrderEqualityComparer(), new BillEqualityComparer());

            var hashBimap4 = new HashedBimap <Order, Bill>(10000, (x1, x2) => x1.Id == x2.Id, (y1, y2) => y1.Id == y2.Id);

            BimapOperation(hashBimap4, x => new Order {
                Id = x
            }, y => new Bill {
                Id = y
            }, new OrderEqualityComparer(), new BillEqualityComparer());

            var hashBimap5 = new HashedBimap <int, int>();

            BimapOperation(hashBimap5, x => x, y => y, EqualityComparer <int> .Default, EqualityComparer <int> .Default);

            var hashBimap6 = new HashedBimap <Order, int>((x1, x2) => x1.Id == x2.Id);

            BimapOperation(hashBimap6, x => new Order {
                Id = x
            }, y => y, new OrderEqualityComparer(), EqualityComparer <int> .Default);

            var hashBimap7 = new HashedBimap <int, Order>((x1, x2) => x1.Id == x2.Id);

            BimapOperation(hashBimap7, x => x, y => new Order {
                Id = y
            }, EqualityComparer <int> .Default, new OrderEqualityComparer());

            var hashBimap8 = new HashedBimap <Order, int>(new OrderEqualityComparer());

            BimapOperation(hashBimap8, x => new Order {
                Id = x
            }, y => y, new OrderEqualityComparer(), EqualityComparer <int> .Default);

            var hashBimap9 = new HashedBimap <int, Order>(new OrderEqualityComparer());

            BimapOperation(hashBimap9, x => x, y => new Order {
                Id = y
            }, EqualityComparer <int> .Default, new OrderEqualityComparer());
        }