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); }
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(); }