public static void Main(string[] args) { // Запуск автоматических тестов. Ниже список тестовых наборов, который нужно запустить. // Закомментируйте тесты на те задачи, к которым ещё не приступали, чтобы они не мешались в консоли. // Все непрошедшие тесты var testsToRun = new string[] { //"TextAnalysis.SentencesParser_Tests", // "TextAnalysis.FrequencyAnalysis_Tests", "TextAnalysis.TextGenerator_Tests", }; new AutoRun().Execute(new[] { "--stoponerror", // Останавливать после первого же непрошедшего теста. Закомментируйте, чтобы увидеть все падающие тесты "--noresult", "--test=" + string.Join(",", testsToRun) }); var text = File.ReadAllText("HarryPotterText.txt"); var sentences = SentencesParserTask.ParseSentences(text); var frequency = FrequencyAnalysisTask.GetMostFrequentNextWords(sentences); while (true) { Console.Write("Введите первое слово (например, harry): "); var beginning = Console.ReadLine(); if (string.IsNullOrEmpty(beginning)) { return; } var phrase = TextGeneratorTask.ContinuePhrase(frequency, beginning.ToLower(), 13); Console.WriteLine(phrase); } }
public void ContinuePhrase_DoNothing_OnEmptyDictionary(string phraseStart, int phraseWordsCount) { var actual = TextGeneratorTask.ContinuePhrase( new Dictionary <string, string>(), phraseStart, phraseWordsCount); Assert.AreEqual(phraseStart, actual); }
public void ContinuePhrase_DoNothing_WhenWordsCountIsZero() { var mostFrequentNextWords = new Dictionary <string, string> { { "x", "y" } }; var actual = TextGeneratorTask.ContinuePhrase(mostFrequentNextWords, "x", 0); Assert.AreEqual("x", actual); }
public static void Main(string[] args) { // Запуск автоматических тестов. Ниже список тестовых наборов, который нужно запустить. // Закомментируйте тесты на те задачи, к которым ещё не приступали, чтобы они не мешались в консоли. // Все непрошедшие тесты File.WriteAllText("C:\test\new.txt", "123456"); var testsToRun = new string[] { "TextAnalysis.SentencesParser_Tests", "TextAnalysis.FrequencyAnalysis_Tests", "TextAnalysis.TextGenerator_Tests", }; new AutoRun().Execute(new[] { "--stoponerror", // Останавливать после первого же непрошедшего теста. Закомментируйте, чтобы увидеть все падающие тесты "--noresult", "--test=" + string.Join(",", testsToRun) }); var text = File.ReadAllText("HarryPotterText.txt"); var sentences = SentencesParserTask.ParseSentences(text); var frequency = FrequencyAnalysisTask.GetMostFrequentNextWords(sentences); //Расскомментируйте этот блок, если хотите выполнить последнюю задачу до первых двух. /* * frequency = new Dictionary<string, string> * { * {"harry", "potter"}, * {"potter", "boy" }, * {"boy", "who" }, * {"who", "likes" }, * {"boy who", "survived" }, * {"survived", "attack" }, * {"he", "likes" }, * {"likes", "harry" }, * {"ron", "likes" }, * {"wizard", "harry" }, * }; */ while (true) { Console.Write("Введите первое слово (например, harry): "); var beginning = Console.ReadLine(); if (string.IsNullOrEmpty(beginning)) { return; } var phrase = TextGeneratorTask.ContinuePhrase(frequency, beginning.ToLower(), 10); Console.WriteLine(phrase); } }
public void ContinuePhrase(string phraseBeginning, int wordsCount, string expectedResult) { var mostFrequentNextWords = new Dictionary <string, string> { { "x", "y" }, { "x y", "z" }, { "y", "q" } }; var actual = TextGeneratorTask.ContinuePhrase(mostFrequentNextWords, phraseBeginning, wordsCount); Assert.AreEqual(expectedResult, actual); }
public void ContinuePhrase_StopWhenNoBigrammsAndTrigramms() { var mostFrequentNextWords = new Dictionary <string, string> { { "x", "y" }, { "x y", "z" }, { "y", "q" } }; var actual = TextGeneratorTask.ContinuePhrase(mostFrequentNextWords, "x", 4); Assert.AreEqual("x y z", actual); }
public void ContinuePhrase_WhenNoTrigrams(string phraseBeginning, string expectedNextWord) { var mostFrequentNextWords = new Dictionary <string, string> { { "x", "y" }, { "y", "z" }, { "z", "x" }, { "a", "b" } }; var actual = TextGeneratorTask.ContinuePhrase(mostFrequentNextWords, phraseBeginning, 2); Assert.AreEqual(phraseBeginning + " " + expectedNextWord, actual); }
public void ContinuePhrase_WithMultiletterWords(string phraseBeginning, string expectedNextWord) { var mostFrequentNextWords = new Dictionary <string, string> { { "hello", "everybody" }, { "everybody be", "cool" }, { "everybody", "be" } }; var actual = TextGeneratorTask.ContinuePhrase(mostFrequentNextWords, phraseBeginning, 1); var expected = string.IsNullOrEmpty(expectedNextWord) ? phraseBeginning : phraseBeginning + " " + expectedNextWord; Assert.AreEqual(expected, actual); }