;; test_blockargs.nu ;; tests for argument handling in Nu blocks. ;; ;; Copyright (c) 2008 Jeff Buck (class TestBlockArgs is NuTestCase (- (id) testSimpleArgs is (function make-list (a b c) (list a b c)) (assert_equal '(1 2 3) (make-list 1 2 3))) (- (id) testRestArgs is (function make-list (a b *rest) (append (list a b) *rest)) (assert_equal '(1 2 3) (make-list 1 2 3)) (assert_equal '(1 2 3 4 5) (make-list 1 2 3 4 5))) (- (id) testOverrideImplicitArgs1 is (function make-list (*args) (*args)) (assert_equal '(1 2 3) (make-list 1 2 3)) (assert_equal '() (make-list))) (- (id) testOverrideImplicitArgs2 is (function make-list (a b *args) (list a b *args)) (assert_equal '(1 2 ()) (make-list 1 2)) (assert_equal '(1 2 (3)) (make-list 1 2 3))) (- (id) testBlock is (assert_equal '(1 2) ((do (a b) (list a b)) 1 2)) (assert_equal '(1 2) ((do (a b *args) (list a b)) 1 2 3 4)) (assert_equal '(3 4) ((do (a b *args) (*args)) 1 2 3 4)) (assert_equal '(1 (3 4)) ((do (a b *args) (list a *args)) 1 2 3 4))))