Beispiel #1
0
        [Test] public void Bind_TwoTypes()
        {
            Functional.UnaryFunction <int, double> func1 = Functional.Bind1st <int, double>(Exp, 3);
            double result = func1(2);

            Assert.AreEqual(9, result);
            Assert.AreEqual(3, lastLhs);
            Assert.AreEqual(2, lastRhs);

            Functional.UnaryFunction <int, double> func2 = Functional.Bind2nd <int, double>(Exp, 3);
            result = func2(2);
            Assert.AreEqual(8, result);
            Assert.AreEqual(2, lastLhs);
            Assert.AreEqual(3, lastRhs);
        }
Beispiel #2
0
        [Test] public void Bind_ThreeTypes()
        {
            Functional.UnaryFunction <string, double> func1 = Functional.Bind1st <int, string, double>(Mux, 3);
            double result = func1("2");

            Assert.AreEqual(9, result);
            Assert.AreEqual(3, lastLhs);
            Assert.AreEqual("2", lastRhs);

            Functional.UnaryFunction <int, double> func2 = Functional.Bind2nd <int, string, double>(Mux, "3");
            result = func2(2);
            Assert.AreEqual(8, result);
            Assert.AreEqual(2, lastLhs);
            Assert.AreEqual("3", lastRhs);
        }
Beispiel #3
0
        [Test] public void Bind_SameTypes()
        {
            Functional.UnaryFunction <int, int> func1 = Functional.Bind1st(AddEm, 10);
            int result = func1(12);

            Assert.AreEqual(22, result);
            Assert.AreEqual(10, lastLhs);
            Assert.AreEqual(12, lastRhs);

            Functional.UnaryFunction <int, int> func2 = Functional.Bind2nd(AddEm, 10);
            result = func2(12);
            Assert.AreEqual(22, result);
            Assert.AreEqual(12, lastLhs);
            Assert.AreEqual(10, lastRhs);
        }