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>()))); }
public void IncrementalUpdate_returns_None_on_identical_lists() { var lists = OrderedCombinations(4); foreach (var list in lists) { Assert.IsFalse(ListChange.IncrementalChanges(list, list).HasValue); } }
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); } } }