Exemple #1
0
        public void Parse_MultiLine_ValueVariable()
        {
            var questions = new string[]
            {
                "pi = 3.14",
                "2 * pi"
            };

            string[] answers = QuestionParser.Parse(questions);

            Assert.AreEqual("6.28", answers[1]);
        }
Exemple #2
0
        public void Parse_MultiLine_LineVariable()
        {
            var questions = new string[]
            {
                "3 + 7",
                "line1 * 2"
            };

            string[] answers = QuestionParser.Parse(questions);

            Assert.AreEqual("10", answers[0]);
            Assert.AreEqual("20", answers[1]);
        }
Exemple #3
0
        public void Parse_MultiLine_MultiValueVariables()
        {
            var questions = new string[]
            {
                "pi = 3.14",
                "pi2 = 2 * pi",
                "pi + pi2"
            };

            string[] answers = QuestionParser.Parse(questions);

            Assert.AreEqual("9.42", answers[2]);
        }
Exemple #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DependencyRegistry" /> class.
        /// </summary>
        public DependencyRegistry()
        {
            string[]   questionLines   = Resource1.code_challenge_question_dump.Split('\n').Skip(1).Select(x => x.Trim()).Where(x => !string.IsNullOrWhiteSpace(x)).ToArray();
            Question[] questionsToLoad = QuestionParser.Parse(questionLines);
            InMemoryQuestionRepository questionRepository = new InMemoryQuestionRepository();

            foreach (Question question in questionsToLoad)
            {
                questionRepository.Insert(question);
            }

            For <IQuestionRepository>().Singleton().Use(questionRepository);
        }
Exemple #5
0
        public void Parse_PercentOff()
        {
            var questions = new string[]
            {
                "25% off $100",
                "30% off 50",
                "12.5% off 25.5"
            };

            string[] answers = QuestionParser.Parse(questions);

            Assert.AreEqual((100 - (100 * 25 / 100)).ToString(), answers[0]);
            Assert.AreEqual((50 - (50 * 30 / 100)).ToString(), answers[1]);
            Assert.AreEqual((25.5 - (25.5 * 12.5 / 100)).ToString(), answers[2]);
        }
        public void Test_multiple_lines()
        {
            string[] lines = new string[]
            {
                "What is 1754 - 3936?|-2182|3176, 6529, 6903",
                "What is 7269 * 2771?|20142399|874",
            };

            Question[] questions = QuestionParser.Parse(lines);
            Assert.AreEqual(2, questions.Length);
            Assert.AreEqual("What is 7269 * 2771?", questions[1].Text);
            Assert.AreEqual("20142399", questions[1].Answer);
            Assert.AreEqual(1, questions[1].Distractors.Length);
            Assert.AreEqual("874", questions[1].Distractors[0]);
        }
        public void Test_single_line()
        {
            string[] lines = new string[]
            {
                "What is 1754 - 3936?|-2182|3176, 6529, 6903"
            };

            Question[] questions = QuestionParser.Parse(lines);
            Assert.AreEqual(1, questions.Length);
            Assert.AreEqual("What is 1754 - 3936?", questions[0].Text);
            Assert.AreEqual("-2182", questions[0].Answer);
            Assert.AreEqual(3, questions[0].Distractors.Length);
            Assert.AreEqual("3176", questions[0].Distractors[0]);
            Assert.AreEqual("6529", questions[0].Distractors[1]);
            Assert.AreEqual("6903", questions[0].Distractors[2]);
        }
        public void Test_blank_distractors_throws_exception()
        {
            string[] lines = new string[]
            {
                "What is 7269 * 2771?|20142399|",
            };

            try
            {
                Question[] questions = QuestionParser.Parse(lines);
                Assert.Fail();
            }
            catch (Exception e)
            {
                Assert.AreEqual("Missing distractors: What is 7269 * 2771?|20142399|", e.Message);
            }
        }
        public void Test_blank_answer_throws_exception()
        {
            string[] lines = new string[]
            {
                "What is 7269 * 2771?||874",
            };

            try
            {
                Question[] questions = QuestionParser.Parse(lines);
                Assert.Fail();
            }
            catch (Exception e)
            {
                Assert.AreEqual("Missing Answer: What is 7269 * 2771?||874", e.Message);
            }
        }
        public void Test_blank_question_throws_exception()
        {
            string[] lines = new string[]
            {
                "|20142399|874",
            };

            try
            {
                Question[] questions = QuestionParser.Parse(lines);
                Assert.Fail();
            }
            catch (Exception e)
            {
                Assert.AreEqual("Missing question text: |20142399|874", e.Message);
            }
        }
        public void Test_too_few_tabs_question_throws_exception()
        {
            string[] lines = new string[]
            {
                "What is 7269 * 2771?|20142399",
            };

            try
            {
                Question[] questions = QuestionParser.Parse(lines);
                Assert.Fail();
            }
            catch (Exception e)
            {
                Assert.AreEqual("Invalid line: What is 7269 * 2771?|20142399", e.Message);
            }
        }
Exemple #12
0
        public void Parse_MultiLine_MultiLineVariables()
        {
            var questions = new string[]
            {
                "3 + 7",
                "line1 * 2",
                "(line1 + line2) / 2",
                "",
                "line3"
            };

            string[] answers = QuestionParser.Parse(questions);

            Assert.AreEqual("10", answers[0]);
            Assert.AreEqual("20", answers[1]);
            Assert.AreEqual("15", answers[2]);
            Assert.AreEqual("", answers[3]);
            Assert.AreEqual("15", answers[4]);
        }
Exemple #13
0
        private void txtQuestions_TextChanged(object sender, EventArgs e)
        {
            SetLineNumbers();

            txtAnswers.Lines = QuestionParser.Parse(txtQuestions.Lines);
        }
 public void Test_parse_sample_file()
 {
     string[]   lines     = Resource1.code_challenge_question_dump.Split('\n').Skip(1).Select(x => x.Trim()).ToArray();
     Question[] questions = QuestionParser.Parse(lines);
     Assert.AreEqual(4000, questions.Length);
 }