#lang racket/base

(require "../js-assembler/package.rkt"
         "../make/make-structs.rkt")

(printf "test-package.rkt\n")


(define (follow? src)
  #t)

(define (test s-exp)
  (package (make-SexpSource s-exp)
           #:should-follow-children? follow?
           #:output-port (open-output-string) #;(current-output-port)))


(test '(define (factorial n)
           (if (= n 0)
               1
               (* (factorial (- n 1))
                  n))))
(test '(let ()
         (define (factorial n)
           (fact-iter n 1))
         (define (fact-iter n acc)
           (if (= n 0)
               acc
               (fact-iter (- n 1) (* acc n))))
         'ok))

(test '(define (gauss n)
         (if (= n 0)
             0
             (+ (gauss (- n 1))
                n))))

(test '(define (fib n)
           (if (< n 2)
               1
               (+ (fib (- n 1))
                  (fib (- n 2))))))