예제 #1
0
        public void MergeBy_WithInfiniteLists_DoesNotHang()
        {
            var infiniteList1 = GetAllLongs();
            var infiniteList2 = GetAllLongs();
            var result        = LinqMethods.MergeBy(x => x, infiniteList1, infiniteList2)
                                .Take(100000).ToList();

            result.Should().BeInAscendingOrder()
            .And.HaveCount(100000);
        }
예제 #2
0
        public void MergeBy_Date_ReturnsAllItemsOrderedByDate()
        {
            var result = LinqMethods
                         .MergeBy(new[] { _items1, _items2 }, x => x.Day);

            result.Should()
            .BeInAscendingOrder(item => item.Day)
            .And.BeEquivalentTo(_expectation, "some items were not found in the result")
            ;
        }
예제 #3
0
        public void MergeBy_WithSimpleOrderedLists_ReturnsOrderedList()
        {
            var list1 = new[] { 1, 3, 5, 7 };
            var list2 = new[] { 2, 4, 6, 8 };
            var list3 = new[] { -1, 11 };

            var result = LinqMethods.MergeBy(x => x, list1, list2, list3);

            result.Should().Equal(-1, 1, 2, 3, 4, 5, 6, 7, 8, 11);
        }
예제 #4
0
        public void MergeBy_DateAndTitle_ReturnsExactlyExpectedResult()
        {
            var result = LinqMethods
                         .MergeBy(
                new[] { _items1, _items2 },
                x => x.Day)
                         .ThenBy(x => x.Title);

            result.Should().Equal(_expectation);
        }
예제 #5
0
        public void MergeBy_WithLargeNumberOfLists_DoesNotHang()
        {
            var listsNo = 5000;
            var random  = new Random(0); //random, but the same random every time...
            var lists   = Enumerable.Range(1, listsNo)
                          .Select(_ =>
            {
                var start = random.Next();
                var step  = random.Next(1, 100);   //positive
                var end   = start + step * random.Next(0, 10);
                return(GetAllLongs(start, step, end));
            });

            var result = LinqMethods.MergeBy(lists, x => x).ToList();

            result.Should().BeInAscendingOrder();
        }