public void StringifyLeastFrequent_BuildsString_BasedOnFrequencies_InColumns() { var expected = "advent"; var actual = LetterFrequency.StringifyLeastFrequent(() => TestCase.Data); Assert.Equal(expected, actual); }
public async Task <string> Handle(CalcFrequencyCommand request, CancellationToken cancellationToken) { var posts = await _postService.GetLastPostInfoAsync(request.UserName, COUNT_POST); var resultFrequency = new LetterFrequency().Calc(posts.Select(p => p.Text)); var result = FormatterFactory.GetFormatter().PrepareString(resultFrequency.allLetter, resultFrequency.letterCounter); var statisticMessage = $"{request.UserName}, статистика для последних {COUNT_POST} постов: {result}"; await _postService.CreatePostAsync(statisticMessage, request.UserName); return(result); }
public static string Solve(string CipherText, Mode mode = Mode.Alphabet) { int bestKey = 0; double bestScore = -1; Language language = Language.English; LetterFrequency frequency = LetterFrequency.GenerateFrequency(CipherText); for (int keyAttempt = 0; keyAttempt < (mode == Mode.Alphabet ? 26 : 256); keyAttempt++) { LetterFrequency tempFrequency = frequency.Shift(-keyAttempt, mode != Mode.Alphabet); double tempScore = -1; double tempID = -1; if (mode == Mode.CharacterUTF8) { for (int ID = 0; ID < LetterFrequency.AllLanguages.Length; ID++) { double langScore = tempFrequency.Compare(LetterFrequency.AllLanguages[ID]); if (langScore > tempScore) { tempScore = langScore; tempID = ID; } } } else { for (int ID = 0; ID < LetterFrequency.AlphaLanguages.Length; ID++) { double langScore = tempFrequency.Compare(LetterFrequency.AlphaLanguages[ID]); if (langScore > tempScore) { tempScore = langScore; tempID = ID; } } } if (tempScore > bestScore) { bestScore = tempScore; language = (Language)tempID; bestKey = keyAttempt; } } string output = "The best language of choice was: " + language.ToString() + "\n"; output += "The best key of choice was " + bestKey + " with a score of " + bestScore + "\nDecoded message is:\n"; output += Decrypt(CipherText, bestKey, mode); return(output); }
public static void Problem6() { var s = LetterFrequency.StringifyLeastFrequent(() => FileStringReader.Read("P6.txt")); Console.WriteLine("Frequented string = {0}", s); }