Bike.Test.TypeTest.Funcs C# (CSharp) Method

Funcs() private method

private Funcs ( ) : void
return void
        public void Funcs()
        {
            Interpret(
                @"func add(a, b) {
                     return a + b;
                  }
                  var a = add(1, 2);
                  var b = add(a, 3);")
                  .Equal("a", 3)
                  .Equal("b", 6);

            Interpret(
                @"var ma = add, mb = add;
                  var fe = ma == mb;")
                  .Equal("fe", true);

            Interpret(
                @"func fib(n) {
                     return n <= 1 ? n : (fib(n-1) + fib(n-2));
                  }
                  a = fib(10);")
                .Equal("a", 55);

            Interpret(
                @"a = (func(n) {
                     return n * n;
                  })(10);")
                .Equal("a", 100);

            Interpret(
                @"a = (func square(n) {
                     return n * n;
                  })(10);
                  b = square(5);")
                .Equal("a", 100)
                .Equal("b", 25);

            Interpret(
                @"a = 1;
                  var f = (func(b, c) {
                     var d = 4;
                     return func() {
                        var e = 5;
                        return a + b + c + d + e;};
                  })(2, 3);");

            Interpret(@"var sum = f();")
                .Equal("sum", 15);
            Interpret(
                @"a = (func square2(n) {
                     return n * n;
                  })(10);
                  b = square2(5);")
                .Equal("a", 100)
                .Equal("b", 25);

            Interpret(
                @"func square3(n) {
                     return n * n;
                  }
                  func invoke(f, n) {
                     return f(n);
                  }
                  a = invoke(square3, 5);")
                .Equal("a", 25);
        }