Beispiel #1
0
        public void Map(string str, int length)
        {
            var result =
                Reader.Return(str)
                .Map(s => new { Str = s, s.Length })
                .Read();

            Assert.Equal(str, result.Str);
            Assert.Equal(length, result.Length);
        }
Beispiel #2
0
        public void Bind(int n)
        {
            var result =
                Reader.Return(n)
                .Bind(x => Reader.Return(new { X = x, Y = x * 2 }))
                .Read();

            Assert.Equal(n, result.X);
            Assert.Equal(n * 2, result.Y);
        }
Beispiel #3
0
        public void Select(string str, int length)
        {
            var reader =
                from s in Reader.Return(str)
                select new { Str = s, s.Length };

            var result = reader.Read();

            Assert.Equal(str, result.Str);
            Assert.Equal(length, result.Length);
        }
Beispiel #4
0
            public void UnitUnit(string str, int length)
            {
                var reader =
                    from s in Reader.Return(str)
                    from l in Reader.Return(s.Length)
                    select new { Str = s, Length = l };

                var result = reader.Read();

                Assert.Equal(str, result.Str);
                Assert.Equal(length, result.Length);
            }
Beispiel #5
0
            public void Env(string str, int length)
            {
                var reader =
                    from s in Reader.Return <object, string>(str)
                    from l in Reader.Return <object, int>(s.Length)
                    from e in Reader.Env <object>()
                    select new { Str = s, Length = l, Env = e };

                var env    = new object();
                var result = reader.Read(env);

                Assert.Equal(str, result.Str);
                Assert.Equal(length, result.Length);
                Assert.Equal(env, result.Env);
            }
Beispiel #6
0
 public void ReturnReturnsValue()
 {
     Assert.Equal(42, Reader.Return(42).Read());
 }