SICP with Racket 단위테스트

Jin·2023년 3월 14일

sicp

<컴퓨터 프로그램의 구조와 해석> 예제는 Scheme을 사용해서 해결하도록 되어 있다. 다행히 Racket 언어를 통해 Scheme 을 사용해 볼 수 있다. sicp package 를 설치하고 다음과 같이 사용하면 된다. 자세한 설치방법은 여기를 참고하자.

~.rkt 파일:

#lang sicp

단위테스트 도구

Rackunit 를 이용하면, 단위테스트를 사용할 수 있다. sicp 에서는 import를 하기 위한 문법이 다르므로 주의해야 한다.

check-equal?과 같은 테스트 메서드를 import 할 수 있다.

#lang sicp

(#%require rackunit)

(define x (cons (list 1 2) (list 3 4)))

(define (count-leaves tree)
  (cond ((null? tree) 0)
        ((not (pair? tree)) 1)
        (else (+ (count-leaves (car tree))
                 (count-leaves (cdr tree))))))

(check-equal? (count-leaves x)
              3)

단위테스트 실행

raco test 파일명 을 사용하면, 파일안에 있는 단위테스트를 실행할 수 있다.

TDD

파일 워치 기능을 이용해서 테스트 주도 개발환경을 구성할 수 있다.

ls | raco test ${파일명}.rkt

0개의 댓글