Exemple #1
0
        public void CalculateDistanceWithSourceShorterThanTargetAndTotallyUnrelated()
        {
            IStringDistance distance = new LevenshteinDistance();
            int             actual   = distance.Distance("Mat", "Geoffery");

            Assert.AreEqual(8, actual);
        }
Exemple #2
0
        public void CalculateDistanceWithSingleCharacters()
        {
            IStringDistance distance = new LevenshteinDistance();
            int             actual   = distance.Distance("a", "b");

            Assert.AreEqual(1, actual);
        }
Exemple #3
0
        public void CalculateDistanceWithSourceShorterThanTarget()
        {
            IStringDistance distance = new LevenshteinDistance();
            int             actual   = distance.Distance("Steve", "Stephen");

            Assert.AreEqual(3, actual);
        }
Exemple #4
0
        public static List <ParallelSearchResult> ArrayThreadTask(object paramObj)
        {
            ParallelSearchThreadParam param = (ParallelSearchThreadParam)paramObj;
            string wordUpper = param.WordPattern.Trim().ToUpper();
            List <ParallelSearchResult> Result = new List <ParallelSearchResult>();

            foreach (string str in param.TempList)
            {
                int dist = LevenshteinDistance.Distance(str.ToUpper(), wordUpper);
                if (dist <= param.MaxDist)
                {
                    ParallelSearchResult temp = new ParallelSearchResult()
                    {
                        Word      = str,
                        Dist      = dist,
                        ThreadNum = param.ThreadNum
                    };

                    Result.Add(temp);
                }
            }
            return(Result);
        }
Exemple #5
0
        private void ButtonCalcDistance_Click(object sender, RoutedEventArgs e)
        {
            string currentWord = TextBoxCurrentWord.Text.Trim();

            if (!string.IsNullOrWhiteSpace(currentWord) && words.Count > 0)
            {
                if (!int.TryParse(TextBoxMaxDistance.Text.Trim(), out int maxDistance))
                {
                    MessageBox.Show("Введите максимальное расстояние");
                    return;
                }
                if (maxDistance < 1 || maxDistance > 5)
                {
                    MessageBox.Show("Максимальное расстояние должно быть в диапазоне от 1 до 5");
                    return;
                }
                List <string> tempList = new List <string>();
                Stopwatch     timer    = new Stopwatch();
                timer.Start();
                foreach (string str in words)
                {
                    int distance = LevenshteinDistance.Distance(str, currentWord);
                    if (distance <= maxDistance)
                    {
                        tempList.Add(str + " (расстояние: " + distance + ")");
                    }
                }
                timer.Stop();
                LabelTimeCalc.Content     = timer.Elapsed.ToString();
                ListBoxResult.ItemsSource = tempList;
            }
            else
            {
                MessageBox.Show("Выберите файл и введите слово для вычисления расстояния");
            }
        }
Exemple #6
0
        public void CalculateDistanceOfGetAndGrtWithDifferentCases()
        {
            IStringDistance distance = new LevenshteinDistance();

            Assert.AreEqual(1, distance.Distance("Get", "Grt"));
        }
Exemple #7
0
        public void CalculateDistanceOfKittenAndSittenWithDifferentCases()
        {
            IStringDistance distance = new LevenshteinDistance();

            Assert.AreEqual(3, distance.Distance("Kitten", "siTTing"));
        }
Exemple #8
0
        public void CalculateDistanceOfKittenAndSitten()
        {
            IStringDistance distance = new LevenshteinDistance();

            Assert.AreEqual(3, distance.Distance("kitten", "sitting"));
        }
Exemple #9
0
        public void ThrowArgumentNullExceptionIfTargetIsNull()
        {
            IStringDistance distance = new LevenshteinDistance();

            distance.Distance("name", null);
        }
Exemple #10
0
        public void ThrowArgumentNullExceptionIfSourceIsNull()
        {
            IStringDistance distance = new LevenshteinDistance();

            distance.Distance(null, null);
        }
 public double Distance(NGram <Chord>[] first, NGram <Chord>[] second)
 {
     return(distance.Distance(
                first.SelectMany(x => x.SelectMany(y => y.Notes)).Select(z => z.Octave * 11 + (int)z.Note).ToArray(),
                second.SelectMany(x => x.SelectMany(y => y.Notes)).Select(z => (int)(z.Octave * 11 + (int)z.Note)).ToArray()));
 }
 public double Distance(NGram <Chord>[] first, NGram <Chord>[] second)
 {
     return(distance.Distance(first.SelectMany(x => x.SelectMany(y => y.Notes)).ToArray(), second.SelectMany(x => x.SelectMany(y => y.Notes)).ToArray()));
 }