public void TestFindModificationByPrimaryIndex()
        {
            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.AddNoChanged(4, 2);

            Modification wanted = modifications.FindModificationByPrimaryIndex(1);
            Assert.AreEqual(wanted.Index, 0);

            wanted = modifications.FindModificationByPrimaryIndex(3);
            Assert.AreEqual(wanted.Index, 1);

            wanted = modifications.FindModificationByPrimaryIndex(4);
            Assert.AreEqual(wanted.Index, 2);

            wanted = modifications.FindModificationByPrimaryIndex(5);
            Assert.AreEqual(wanted.Index, 2);
        }
        public void TestFindModificationByPrimaryIndex()
        {
            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.AddNoChanged(4, 2);

            Modification wanted = modifications.FindModificationByPrimaryIndex(1);

            Assert.AreEqual(wanted.Index, 0);

            wanted = modifications.FindModificationByPrimaryIndex(3);
            Assert.AreEqual(wanted.Index, 1);

            wanted = modifications.FindModificationByPrimaryIndex(4);
            Assert.AreEqual(wanted.Index, 2);

            wanted = modifications.FindModificationByPrimaryIndex(5);
            Assert.AreEqual(wanted.Index, 2);
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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();
        }