TAP

d:id:tokuhirom:20080305:1204677112 この辺とこの辺を参考にして,TAPを使えるような練習をしてみた.

これで,JavaScript 第5版を読みながらテストを書こうかと思う今日このごろ.

練習.

#!/usr/bin/gosh

(define (square a) (* a a))
(define (sos2 a b) (+ (square a) (square b)))
(define (max2 a b) (if (> a b) a b))

(define (f x y z)
  (cond ((< x y) (sos2 (max2 x y) (max2 x z)))
	(else    (sos2 (max2 y x) (max2 y z)))))

(print "1..6")
(let* ((count 1)
       (is (lambda (res exp)
	     (print (if (= res exp) "ok" "ng") " " count)
	     (set! count (+ count 1)))))
  (is (f 1 2 3) 13)
  (is (f 1 3 2) 13)
  (is (f 2 1 3) 13)
  (is (f 2 3 1) 13)
  (is (f 3 1 2) 13)
  (is (f 3 2 1) 13))

ということでJavaScriptでも書いてみた.

$ cat aa.js
#!/usr/bin/js

print("1..1");
print("ok 1");
$ prove aa.js
aa....ok
All tests successful.
Files=1, Tests=1,  0 wallclock secs ( 0.00 cusr +  0.02 csys =  0.02 CPU)