Exemple #1
0
        public void IncrementalUpdate_makes_correct_number_of_changes()
        {
            Assert.AreEqual(
                2,
                CountChanges(
                    ListChange.IncrementalChanges(
                        new[] { 1, 2, 3 },
                        new[] { 1, 2, 3, 4, 5 }).Or(ListChange.None <int>())));

            Assert.AreEqual(
                2,
                CountChanges(
                    ListChange.IncrementalChanges(
                        new[] { 1, 2, 5 },
                        new[] { 1, 2, 3, 4, 5 }).Or(ListChange.None <int>())));

            Assert.AreEqual(
                2,
                CountChanges(
                    ListChange.IncrementalChanges(
                        new[] { 1, 2, 3, 4, 5 },
                        new[] { 1, 2, 3 }).Or(ListChange.None <int>())));

            Assert.AreEqual(
                2,
                CountChanges(
                    ListChange.IncrementalChanges(
                        new[] { 1, 2, 3, 4, 5 },
                        new[] { 1, 2, 5 }).Or(ListChange.None <int>())));
        }
Exemple #2
0
        public void IncrementalUpdate_returns_None_on_identical_lists()
        {
            var lists = OrderedCombinations(4);

            foreach (var list in lists)
            {
                Assert.IsFalse(ListChange.IncrementalChanges(list, list).HasValue);
            }
        }
Exemple #3
0
        public void Applying_IncrementalUpdate_on_List_returns_correct_result()
        {
            var lists = OrderedCombinations(5);

            foreach (var oldList in lists)
            {
                foreach (var newList in lists)
                {
                    var maybeChanges = ListChange.IncrementalChanges(oldList, newList);

                    var result = oldList.ToList();

                    foreach (var changes in maybeChanges)
                    {
                        changes.Apply(result);
                    }
                    CollectionAssert.AreEqual(newList, result);
                }
            }
        }