public void CancellationToeknForComparingStartElements() { var collection = SlowCompareElement.ToArrayOfSlowCompareElement("abcdefghijklmnop"); var correlater = new IgnoreIdenticalBeginningAndEndCorrelaterWrapper <SlowCompareElement>(new NullCorrelator <SlowCompareElement>()); correlater.AsseertCancellationTokenWorks(collection, collection); }
[DataRow("1234", "5678", 0)] // Diff eveywhere public void IContinuousCorrelaterTest_InnerCorrelaterIsContinuous(string string1, string string2, int extraTimesToCallOrResultUpdate) { var levenshteinCorrelater = new LevenshteinCorrelater <char>(missmatchCost, removalInsertionCost, removalInsertionCost); var splitToChunksCorrelater = new SplitToChunksCorrelaterWrapper <char>(levenshteinCorrelater, 2); var correlater = new IgnoreIdenticalBeginningAndEndCorrelaterWrapper <char>(splitToChunksCorrelater); var match1 = new List <char>(); var match2 = new List <char>(); var totalDistance = 0L; var totalUpdates = 0; var innerUpdates = 0; correlater.OnResultUpdate += result => { match1.AddRange(result.BestMatch1); match2.AddRange(result.BestMatch2); totalDistance += result.Distance; totalUpdates++; }; splitToChunksCorrelater.OnResultUpdate += _ => innerUpdates++; var actualResult = correlater.Correlate(string1, string2); var resultFromEvent = new CorrelaterResult <char>(totalDistance, match1.ToArray(), match2.ToArray()); Assertions.AssertResultIsAsExpected(actualResult, resultFromEvent); Assert.AreEqual(extraTimesToCallOrResultUpdate + innerUpdates, totalUpdates, $"Got wrong number of {nameof(totalUpdates)}"); }
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 CancellationToeknForInnerCorrelater() { var correlater = new IgnoreIdenticalBeginningAndEndCorrelaterWrapper <char>(new NeverEndingCorrelater <char>()); correlater.AsseertCancellationTokenWorks(); }