parent
99164b32f3
commit
f258e9a796
@ -0,0 +1,49 @@
|
|||||||
|
#lang racket
|
||||||
|
|
||||||
|
(require rackunit "scheme-hw.rkt")
|
||||||
|
|
||||||
|
(define hw-tests
|
||||||
|
(test-suite "scheme homework tests"
|
||||||
|
|
||||||
|
(test-case "test pick"
|
||||||
|
(begin
|
||||||
|
(check-equal? (pick 0 '(1 2 3)) '())
|
||||||
|
(check-equal? (pick 7 '(1 2 3)) '())
|
||||||
|
(check-equal? (pick 1 '(3 2 1)) 3)
|
||||||
|
(check-equal? (pick 2 '(3 2 1)) 2)
|
||||||
|
(check-equal? (pick 3 '(3 2 1)) 1) ))
|
||||||
|
|
||||||
|
(test-case "frontier"
|
||||||
|
(begin
|
||||||
|
(check-equal? (frontier 42) '(42))
|
||||||
|
(check-equal? (frontier (cons 1 (cons 2 3))) '(1 2 3))
|
||||||
|
(check-equal?
|
||||||
|
(frontier (cons (cons (cons 1 (cons 2 3)) 4) 5))
|
||||||
|
'(1 2 3 4 5)) ))
|
||||||
|
|
||||||
|
(test-case "my-reverse"
|
||||||
|
(begin
|
||||||
|
(check-equal? (my-reverse '()) '())
|
||||||
|
(check-equal? (my-reverse '(1 2 3)) '(3 2 1))
|
||||||
|
(check-equal? (my-reverse '(1 (2 3))) '((2 3) 1))))
|
||||||
|
|
||||||
|
(test-case "deep-reverse"
|
||||||
|
(begin
|
||||||
|
(check-equal? (deep-reverse '(1 2 3)) '(3 2 1))
|
||||||
|
(check-equal? (deep-reverse '((1 2) (3 4))) '((4 3) (2 1)))
|
||||||
|
(check-equal? (deep-reverse '()) '())
|
||||||
|
(check-equal? (deep-reverse 42) 42)
|
||||||
|
(check-equal?
|
||||||
|
(deep-reverse '(1 2 (3 (4 5) 6) ((7 8))))
|
||||||
|
'(((8 7)) (6 (5 4) 3) 2 1)) ))
|
||||||
|
|
||||||
|
(test-case "reduce"
|
||||||
|
(begin
|
||||||
|
(check-equal? (reduce (lambda (prod each) (* prod each)) '(1 2 3 4) 1) 24)
|
||||||
|
(check-equal? (reduce (lambda (sum each) (+ sum each)) '(1 2 3 4) 0) 10)
|
||||||
|
(check-equal?
|
||||||
|
(reduce (lambda (squares each) (cons (* each each) squares)) '(1 2 3) '())
|
||||||
|
'(9 4 1)) )) ))
|
||||||
|
|
||||||
|
(require rackunit/gui)
|
||||||
|
(test/gui hw-tests)
|
@ -1,13 +0,0 @@
|
|||||||
#lang racket
|
|
||||||
|
|
||||||
(require rackunit "tbd.rkt")
|
|
||||||
|
|
||||||
(define hw-tests
|
|
||||||
(test-suite "scheme unit tests"
|
|
||||||
|
|
||||||
(test-case "test fail"
|
|
||||||
(begin
|
|
||||||
(check-equal? 3 4)))))
|
|
||||||
|
|
||||||
(require rackunit/gui)
|
|
||||||
(test/gui hw-tests)
|
|
@ -0,0 +1,15 @@
|
|||||||
|
#lang racket
|
||||||
|
|
||||||
|
(define (my-map f a-list)
|
||||||
|
(if (null? a-list)
|
||||||
|
'()
|
||||||
|
(cons (f (car a-list)) (my-map f (cdr a-list)))))
|
||||||
|
|
||||||
|
(define (co-map f a-list)
|
||||||
|
(define (co-helper in-list out-list)
|
||||||
|
(if (null? in-list)
|
||||||
|
out-list
|
||||||
|
(co-helper (cdr in-list) (append out-list (list (f (car in-list)))))))
|
||||||
|
(co-helper a-list '()))
|
||||||
|
|
||||||
|
(provide my-map co-map)
|
@ -0,0 +1,17 @@
|
|||||||
|
#lang racket
|
||||||
|
|
||||||
|
(require rackunit "tbd.rkt")
|
||||||
|
|
||||||
|
(define hw-tests
|
||||||
|
(test-suite "scheme unit tests"
|
||||||
|
|
||||||
|
(test-case "test my-map"
|
||||||
|
(begin
|
||||||
|
(check-equal? (my-map (lambda (x) (* x x)) '(1 2 3)) '(1 4 9))))
|
||||||
|
|
||||||
|
(test-case "test co-map"
|
||||||
|
(begin
|
||||||
|
(check-equal? (co-map (lambda (x) (* x x)) '(1 2 3)) '(1 4 9))))))
|
||||||
|
|
||||||
|
(require rackunit/gui)
|
||||||
|
(test/gui hw-tests)
|
Loading…
Reference in new issue