From bcecbd051b1d393bba648f229b43bdb4a3446d1b Mon Sep 17 00:00:00 2001 From: Richard Frankel Date: Wed, 25 Aug 2010 18:54:42 -0400 Subject: [PATCH] added some tests for function soak --- test/test_existence.coffee | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/test_existence.coffee b/test/test_existence.coffee index 8aa42d85..7943e520 100644 --- a/test/test_existence.coffee +++ b/test/test_existence.coffee @@ -109,3 +109,29 @@ ok x is - 1 # Things that compile to ternaries should force parentheses, like operators do. duration = if options?.animated then 150 else 0 ok duration is 0 + + +# function soak +plus1 = (x) -> x + 1 +maybe_close = (f, arg) -> if typeof f is 'function' then () -> f(arg) else -1 +funcs = -> + [ + (-> 37) + 'six times nine' + (-> (-> plus1 4)?()) + ] + +ok plus1?(41) is 42 +ok (plus1? 41) is 42 +ok plus2?(41) is null +ok (plus2? 41) is null + +ok maybe_close(plus1, 41)?() is 42 +ok (maybe_close plus1, 41)?() is 42 +ok (maybe_close 'daddy would you like some sausage', 41)?() is null + +ok 2?(3) is null + +sum = 0 +(sum += (f? null ? 0)) for f in funcs?() +ok sum is 42 \ No newline at end of file