public void Use_GetTokenDistance_ToCompareSingleTokens(string document1Token, string document2Token, double expectedDistance) { var first = new List <string> { document1Token }; var second = new List <string> { document2Token }; var actual = levenshteinCalculator.CompareDocumentsPairwise( new List <List <string> > { first, second }).Single(); Assert.AreEqual(expectedDistance, actual.Distance, 1e-6); }
static void Main(string[] args) { Console.WriteLine("Идёт анализ решений..."); var folder = Folders.SuspiciousSources; if (args.Length != 0) { folder = new DirectoryInfo(args[0]); } var documents = DocumentLoader.LoadAllStateNames(folder) .Select(documentName => new DocumentContent(documentName)) .ToList(); var levenshteinCalculator = new LevenshteinCalculator(); var comparisonResults = levenshteinCalculator .CompareDocumentsPairwise(documents .Select(d => d.Tokens) .ToList() ) .OrderBy(GetNormalizedDistance) .Take(5); Console.WriteLine("Анализ окончен\n Топ-5 самых похожих пар:\n"); GenerateReport(documents, comparisonResults); }