expression_call.sf 661 B

123456789101112131415161718192021222324
  1. #!/usr/bin/ruby
  2. var ok_block = {|z|
  3. "ok -- #{z}"
  4. }
  5. assert_eq((ok_block \\ { "error" })(1), "ok -- 1")
  6. assert_eq((nil \\ {|x| "ok -- #{x}" })(2), "ok -- 2")
  7. assert_eq(({ "ok -- #{_}" } \\ { "error" })(3), "ok -- 3")
  8. assert_eq(({|x| x + 1 })(42), 43)
  9. assert_eq({|x| x + 1 }(42), 43)
  10. assert_eq((true ? func(x){ x.inc } : func(x){ x.dec })(42), 43)
  11. assert_eq((false ? func(x){ x.inc } : func(x){ x.dec })(42), 41)
  12. assert_eq(func(x){ x.inc } \\ func(x){ x.dec } -> call(42), 43)
  13. assert_eq(nil \\ func(x){ x.dec } -> call(42), 41)
  14. # Currently, this doesn't work
  15. # assert_eq(true ? func(x){ x.inc } : func(x){ x.dec } -> call(42), 43)
  16. say "** Test passed!"