Ejemplo n.º 1
0
        public void Fail_ReturnsParseError()
        {
            var parser = Parse.Fail <int>("test");
            var result = parser.Parse("");

            ParseAssert.ErrorEquals("test", result);
        }
Ejemplo n.º 2
0
        public void Not_Success_ReturnsError()
        {
            var parser = Parse.Not(Chars.Any());
            var result = parser.Parse("xyz");

            ParseAssert.ErrorEquals("Unexpected \"x\"", result);
        }
Ejemplo n.º 3
0
        public void Label_Error_ReturnsErrorWithMessage()
        {
            var parser = Parse.Fail <int>("Oh noes").Label(() => "Test");
            var result = parser.Parse("");

            ParseAssert.ErrorEquals("Test", result);
        }
Ejemplo n.º 4
0
        public void Select_Error_ReturnsError()
        {
            var parser = from i in Parse.Fail <int>("test")
                         select i * 2;

            var result = parser.Parse("");

            ParseAssert.ErrorEquals("test", result);
        }
Ejemplo n.º 5
0
        public void Where_Error_ReturnsError()
        {
            var parser = from x in Parse.Fail <int>("test")
                         where x == 42
                         select x;

            var result = parser.Parse("");

            ParseAssert.ErrorEquals("test", result);
        }
Ejemplo n.º 6
0
        public void SelectMany_SuccessThenError_ReturnsErrorValue()
        {
            var parser = from x in Parse.Succeed(21)
                         from y in Parse.Fail <int>("test")
                         select x *y;

            var result = parser.Parse("");

            ParseAssert.ErrorEquals("test", result);
        }
Ejemplo n.º 7
0
        public void Where_FailingPredicate_ReturnsError()
        {
            var parser = from x in Parse.Succeed(42)
                         where x != 42
                         select x;

            var result = parser.Parse("");

            ParseAssert.ErrorEquals("Unexpected \"42\"", result);
        }
Ejemplo n.º 8
0
        public void Or_FirstErrorConsumesInput_ReturnsFirstError()
        {
            var parserA = from x in Chars.Any()
                          from y in Parse.Fail <char>("test")
                          select y;
            var parserB = Chars.Any();
            var parser  = Combine.Or(parserA, parserB);

            var result = parser.Parse("abc");

            ParseAssert.ErrorEquals("test", result);
        }