コード例 #1
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 Correlate_Transposition3()
        {
            var correlater = new DamerauLevenshteinCorrelater <string>(20, 10, 15, 15);

            var array1 = new[] { "A", "D", "B" };
            var array2 = new[] { "B", "D" };

            var expectedResult = new CorrelaterResult <string>(25, array1, new [] { null, "B", "D" });

            correlater.AssertComparision(array1, array2, expectedResult);
        }
        public void DifrentTranspositionCosts(int transpositionCost)
        {
            var transpositionCalculator = A.Fake <ITranspositionCalculator <string> >();
            var correlater = new DamerauLevenshteinCorrelater <string>(new BasicDistanceCalculator <string>(20), transpositionCalculator, 20, 20);

            A.CallTo(() => transpositionCalculator.TranspositionCost(A <string> ._, A <string> ._)).Returns((uint)transpositionCost);

            var array1 = new[] { "V", "E" };
            var array2 = new[] { "E", "V" };

            var expectedResult = new CorrelaterResult <string>(transpositionCost, array1, array2);

            correlater.AssertComparision(array1, array2, expectedResult);
        }
        public void CorrelateObject_NullElementInCollection_ThrowException(bool nullInCollection1)
        {
            var collectionWithNull    = new[] { new TestClass(), null };
            var collectionWithoutNull = new[] { new TestClass() };

            var correlater = new DamerauLevenshteinCorrelater <TestClass>(missmatchCost, transpositionCost, removalCost, insertionCost);

            if (nullInCollection1)
            {
                correlater.AssetThrowsNullElementException(collectionWithNull, collectionWithoutNull, "collection1", 1);
            }
            else
            {
                correlater.AssetThrowsNullElementException(collectionWithoutNull, collectionWithNull, "collection2", 1);
            }
        }
        public void OnProgressUpdatesHappensRightNumberOfTimes()
        {
            var correlater = new DamerauLevenshteinCorrelater <string>(missmatchCost, transpositionCost, removalCost, insertionCost);

            correlater.AssertProgressUpdateWasCalledRightNumberOfTimes();
        }