public void IgnoreSentencesWithSingleWord([Values("x. ax. y. z")] string text)
        {
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>();

            var actual = FrequencyAnalysisTask.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnCorrectResult_OnTextWithTwoSentencesWithOneWord()
        {
            var text       = "x.y";
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>();

            var actual = FrequencyAnalysisTask.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnEmptyDictionary_OnEmptyText()
        {
            var text       = "";
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>();

            var actual = FrequencyAnalysisTask.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnResult_WithMostFrequentBigrams([Values("x y. x z. x y.", "x z. x y. x y", "x y. x y.", "x y")]
                                                         string text)
        {
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>
            {
                { "x", "y" }
            };

            var actual = FrequencyAnalysisTask.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnPairForEveryBigram([Values("x y. y z.", "y z. x y.")] string text)
        {
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>
            {
                { "x", "y" },
                { "y", "z" }
            };

            var actual = FrequencyAnalysisTask.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnCorrectResult_OnTextWithOneSentenceWithMultipleWords()
        {
            var text       = "x y z";
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>
            {
                { "x", "y" },
                { "y", "z" },
                { "x y", "z" }
            };

            var actual = FrequencyAnalysisTask.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
Example #7
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            Console.InputEncoding  = Encoding.UTF8;
            // Запуск автоматических тестов. Ниже список тестовых наборов, который нужно запустить.
            // Закомментируйте тесты на те задачи, к которым ещё не приступали, чтобы они не мешались в консоли.
            // Все непрошедшие тесты
            var testsToRun = new string[]
            {
                "TextGenerator.SentencesParser_Tests",
                "TextGenerator.FrequencyAnalysis_Tests",
                "TextGenerator.TextGenerator_Tests",
            };

            /*new AutoRun().Execute(new[]
             * {
             *  "--stoponerror", // Останавливать после первого же непрошедшего теста. Закомментируйте, чтобы увидеть все падающие тесты
             *  "--noresult",
             *  "--test=" + string.Join(",", testsToRun)
             * });*/

            var text = File.ReadAllText("HarryPotterText.txt");
            //var text = File.ReadAllText("moskva-petushki.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(), 10);
                Console.WriteLine(phrase);
            }
        }