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)}");
        }
Ejemplo n.º 3
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 CancellationToeknForInnerCorrelater()
        {
            var correlater = new IgnoreIdenticalBeginningAndEndCorrelaterWrapper <char>(new NeverEndingCorrelater <char>());

            correlater.AsseertCancellationTokenWorks();
        }