public void SameStringTest()
        {
            var s              = "abcdefg";
            var correlater     = new MyersAlgorithmCorrelater <char>();
            var expectedResult = new CorrelaterResult <char>(0, s.ToCharArray(), s.ToCharArray());

            correlater.AssertComparision(s, s, expectedResult);
        }
        public void FirstStringEmptyTest()
        {
            var s              = "12345678";
            var correlater     = new MyersAlgorithmCorrelater <char>();
            var expectedResult = new CorrelaterResult <char>(s.Length, "\0\0\0\0\0\0\0\0".ToCharArray(), s.ToCharArray());

            correlater.AssertComparision(string.Empty, s, expectedResult);
        }
        public void SomeCharsRemovedTest()
        {
            var s1             = "abcdefghijk";
            var s2             = "acdeghk";
            var correlater     = new MyersAlgorithmCorrelater <char>();
            var expectedResult = new CorrelaterResult <char>(4, s1.ToCharArray(), "a\0cde\0gh\0\0k".ToCharArray());

            correlater.AssertComparision(s1, s2, expectedResult);
        }
        public void CharRemovedAndAddedTest()
        {
            var s1             = "abdefg";
            var s2             = "abcdef";
            var correlater     = new MyersAlgorithmCorrelater <char>();
            var expectedResult = new CorrelaterResult <char>(2, "ab\0defg".ToCharArray(), "abcdef\0".ToCharArray());

            correlater.AssertComparision(s1, s2, expectedResult);
        }
        public void OneDifferentCharInStringsTest()
        {
            var s1             = "abcdefg";
            var s2             = "abc1efg";
            var correlater     = new MyersAlgorithmCorrelater <char>();
            var expectedResult = new CorrelaterResult <char>(2, "abcd\0efg".ToCharArray(), "abc\01efg".ToCharArray());

            correlater.AssertComparision(s1, s2, expectedResult);
        }
        public void TotallyDifferentStringsTest()
        {
            var s1             = "abcdefghij";
            var s2             = "12345678";
            var correlater     = new MyersAlgorithmCorrelater <char>();
            var expectedResult = new CorrelaterResult <char>(s1.Length + s2.Length, "abcdefghij\0\0\0\0\0\0\0\0".ToCharArray(), "\0\0\0\0\0\0\0\0\0\012345678".ToCharArray());

            correlater.AssertComparision(s1, s2, expectedResult);
        }
Exemplo n.º 7
0
        private void SetCorrelator()
        {
            ICorrelater <char> correlator;

            switch (selectCorrelatorComboBox.Text)
            {
            case nameof(DamerauLevenshteinCorrelater <char>):
                correlator = new DamerauLevenshteinCorrelater <char>(10, 12, 7, 7);
                break;

            case nameof(DynamicLcsCorrelater <char>):
                correlator = new DynamicLcsCorrelater <char>();
                break;

            case nameof(MyersAlgorithmCorrelater <char>):
                correlator = new MyersAlgorithmCorrelater <char>();
                break;

            case nameof(PatienceDiffCorrelater <char>):
                correlator = new PatienceDiffCorrelater <char>();
                break;

            case nameof(HuntSzymanskiCorrelater <char>):
                correlator = new HuntSzymanskiCorrelater <char>();
                break;

            case nameof(NullCorrelator <char>):
                correlator = new NullCorrelator <char>();
                break;

            case nameof(LevenshteinCorrelater <char>):
            default:
                correlator = new LevenshteinCorrelater <char>(10, 7, 7);
                break;
            }

            if (slowCompareCheclCheckBox.Checked)
            {
                correlator = new SlowCorrelater <char>(correlator, 500);
            }
            if (splitToChunksCheckBox.Checked)
            {
                correlator = new SplitToChunksCorrelaterWrapper <char>(correlator, 10);
            }
            if (IgnoreIdenticalBeginningAndEndCorrelaterWrapperCheckBox.Checked)
            {
                correlator = new IgnoreIdenticalBeginningAndEndCorrelaterWrapper <char>(correlator);
            }
            if (SplitByPatienceWrapperCheckBox.Checked)
            {
                correlator = new SplitByPatienceAlgorithmWrapper <char>(correlator);
            }

            stringCorrelatorUserControl1.Correlater = correlator;
        }
        public void CorrelateStrings_NullElementInCollection_ThrowException(bool nullInCollection1)
        {
            var collectionWithNull    = new[] { "A", "B", "C", null };
            var collectionWithoutNull = new[] { "A", "B", "C" };

            var correlater = new MyersAlgorithmCorrelater <string>();

            if (nullInCollection1)
            {
                correlater.AssetThrowsNullElementException(collectionWithNull, collectionWithoutNull, "collection1", 3);
            }
            else
            {
                correlater.AssetThrowsNullElementException(collectionWithoutNull, collectionWithNull, "collection2", 3);
            }
        }
        public CorrelaterResult <string> IEnumerableCorrelaterExsample()
        {
            // The library contains a number of ICorrelaters.
            // MyersAlgorithmCorrelater is particularity good for cases where we aren't expecting many changes (like diff tools for code changes).
            // Indeed, it is used as the default diff algorithm for git.
            ICorrelater <string> correlater = new MyersAlgorithmCorrelater <string>();

            string[] array1 = { "A", "D", "C" };
            string[] array2 = { "A", "B", "C" };

            // Correlate the collections - you can compare any IEnumerable<T>.
            CorrelaterResult <string> result = correlater.Correlate(array1, array2);

            // Print some of the result
            Console.WriteLine(result.Distance);   // Should be 2
            Console.WriteLine(result.BestMatch1); // Should be { "A", "D", null, "C"}
            Console.WriteLine(result.BestMatch2); // Should be { "A", null, "B", "C"}

            return(result);
        }
        public void CancellationToeknWorks()
        {
            var correlater = new MyersAlgorithmCorrelater <char>();

            correlater.AsseertCancellationTokenWorks();
        }