public void TestSplit() { TextFile primary = new TextFile(); primary.AddLines(new[] { "a", "b", "c", "d", "e", "f" }); TextFile secondary = new TextFile(); secondary.AddLines(new[] { "1", "2", "3", "4", "5", "6" }); ModificationCollection modifications = new ModificationCollection(primary, secondary); modifications.AddNoChanged(0, 2); modifications.AddReplaced(2, 0, 2); modifications.AddAdded(4, 2); modifications.Split(3); // индекс в середине Assert.AreEqual(modifications.Count, 4); }
public void ExecuteMerge() { MergedModifications = new ModificationCollection(new TextFile(ServerFile.Name), new TextFile("Merged")); MergedModifications.Initialize(ServerUser1Modifications); MergedModifications.Split(ServerUser2Modifications); ModificationCollection temporary = new ModificationCollection(ServerUser2Modifications); temporary.Split(MergedModifications); ICollection <Modification> processed = new List <Modification>(); for (int mergedIndex = 0; mergedIndex < MergedModifications.Count; mergedIndex++) { Modification currentMerged = MergedModifications[mergedIndex]; Modification currentUser2 = temporary.FindModificationByPrimaryIndex(processed, currentMerged.Primary.StartIndex); if (currentUser2 == null) { continue; } processed.Add(currentUser2); Modification[] merged = currentMerged.Merge(currentUser2); currentMerged.Remove(); foreach (Modification mergedModification in merged) { MergedModifications.Insert(mergedIndex, mergedModification); mergedIndex++; } mergedIndex--; } MergedModifications.GenerateFiles(); RaiseStateChanged(); }
public void ExecuteMerge() { MergedModifications = new ModificationCollection(new TextFile(ServerFile.Name), new TextFile("Merged")); MergedModifications.Initialize(ServerUser1Modifications); MergedModifications.Split(ServerUser2Modifications); ModificationCollection temporary = new ModificationCollection(ServerUser2Modifications); temporary.Split(MergedModifications); ICollection<Modification> processed = new List<Modification>(); for (int mergedIndex = 0; mergedIndex < MergedModifications.Count; mergedIndex++) { Modification currentMerged = MergedModifications[mergedIndex]; Modification currentUser2 = temporary.FindModificationByPrimaryIndex(processed, currentMerged.Primary.StartIndex); if (currentUser2 == null) { continue; } processed.Add(currentUser2); Modification[] merged = currentMerged.Merge(currentUser2); currentMerged.Remove(); foreach (Modification mergedModification in merged) { MergedModifications.Insert(mergedIndex, mergedModification); mergedIndex++; } mergedIndex--; } MergedModifications.GenerateFiles(); RaiseStateChanged(); }