Ejemplo n.º 1
0
        private void button10_Click(object sender, EventArgs e)
        {
            GeneratorFacade gen;

            gen = new GeneratorFacade(new MarkovGenerator(System.IO.File.ReadAllText("markov_data/data[okeypotolok.su].txt")));
            Console.WriteLine(gen.GenerateParagraphs(20));
        }
Ejemplo n.º 2
0
        private void buttonGenerate_Click(object sender, RoutedEventArgs e)
        {
            string resultString = string.Empty;

            try
            {
                if (radioSentence.IsChecked.Value)
                {
                    resultString = _gen.GenerateSentence(Convert.ToInt32(textSentence_MinWords.Text));
                }
                else if (radioWords.IsChecked.Value)
                {
                    resultString = _gen.GenerateWords(Convert.ToInt32(textWords_NumWords.Text));
                }
                else if (radioTitle.IsChecked.Value)
                {
                    resultString = _gen.GenerateTitle(Convert.ToInt32(textTitle_NumWords.Text));
                }
                else if (radioParagraphs.IsChecked.Value)
                {
                    resultString = _gen.GenerateParagraphs(Convert.ToInt32(textParagraphs_NumParagraphs.Text));
                }
                else
                {
                    throw new NotImplementedException();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }
            textOutput.Text = resultString;
        }
        public void T_GenerateParagraphs_Validate_Input()
        {
            GeneratorFacade facade = InitBaseFacade();

            Assert.Throws <Exceptions.InvalidArguments>(
                delegate { facade.GenerateParagraphs(0); });
            Assert.Throws <Exceptions.InvalidArguments>(
                delegate { facade.GenerateParagraphs(1, new ParagraphParams {
                    MaxSentences = 1
                }); });
            Assert.Throws <Exceptions.InvalidArguments>(
                delegate { facade.GenerateParagraphs(1, new ParagraphParams {
                    MinSentences = -1
                }); });
            Assert.Throws <Exceptions.InvalidArguments>(
                delegate { facade.GenerateParagraphs(1, new ParagraphParams {
                    MaxSentences = 4,
                    MinSentences = 5
                }); });
            Assert.Throws <Exceptions.InvalidArguments>(
                delegate { facade.GenerateParagraphs(1, new ParagraphParams {
                    ParagraphIndent = -1
                }); });
            Assert.Throws <Exceptions.InvalidArguments>(
                delegate { facade.GenerateParagraphs(1, new ParagraphParams {
                    SentenceIndent = -1
                }); });
        }
        public void T_GenerateParagraphs_Length()
        {
            GeneratorFacade facade = InitBaseFacade();
            //seven sentences should be generated
            string resultStr = facade.GenerateParagraphs(3, new ParagraphParams
            {
                MinSentences = 7, MaxSentences = 7
            });

            string[] splitSentences = resultStr.Split(facade.Generator.SentenceEnd.ToArray(),
                                                      StringSplitOptions.RemoveEmptyEntries);
            Assert.AreEqual(21, splitSentences.Length);
        }
Ejemplo n.º 5
0
        static void TimeGenerateParagraphs(GeneratorFacade gen, int numIterations,
                                           int numParagraphs)
        {
            Stopwatch timer = new Stopwatch();

            timer.Start();
            for (int i = 0; i < numIterations; i++)
            {
                gen.GenerateParagraphs(numParagraphs);
            }
            timer.Stop();
            double baseGenTime = timer.ElapsedMilliseconds / 1000.0;

            Console.WriteLine(string.Format("Time to generate {0}x{1} paragraphs: {2:0.00} seconds",
                                            numIterations, numParagraphs, baseGenTime));
        }
        public void T_GenerateParagraphs_Indentation()
        {
            GeneratorFacade facade        = InitBaseFacade();
            ParagraphParams defaultParams = new ParagraphParams {
                ParagraphIndent = 8, SentenceIndent = 4
            };
            string        resultStr = facade.GenerateParagraphs(5, defaultParams);
            StringBuilder sb        = new StringBuilder();

            for (int i = 0; i < defaultParams.ParagraphIndent; i++)
            {
                sb.Append(" ");
            }
            string paragraphIndent = sb.ToString();

            sb.Length = 0;

            for (int i = 0; i < defaultParams.SentenceIndent; i++)
            {
                sb.Append(" ");
            }
            string sentenceIndent = sb.ToString();

            sb.Length = 0;
            string[] paragraphSplits = resultStr.Split(new string[] { paragraphIndent }, StringSplitOptions.RemoveEmptyEntries);

            //Verify we got 5 paragraphs
            Assert.AreEqual(5, paragraphSplits.Length);
            foreach (string paragraph in paragraphSplits)
            {
                string   trimmedParagraph = paragraph.TrimEnd();
                string[] sentenceSplits   = trimmedParagraph.Split(new string[] { sentenceIndent }, StringSplitOptions.RemoveEmptyEntries);
                //Check sentences are of appropriate sizes
                Assert.GreaterOrEqual(sentenceSplits.Length, defaultParams.MinSentences);
                Assert.LessOrEqual(sentenceSplits.Length, defaultParams.MaxSentences);

                //Check sentences actually end with a punctuation mark
                foreach (string sentence in sentenceSplits)
                {
                    Assert.Contains(sentence[sentence.Length - 1], facade.Generator.SentenceEnd);
                }
            }
        }