tests/garden-fence.ss
#lang scheme
(require (planet cce/scheme:4:1/planet)
         (planet schematics/schemeunit))
(require/expose "../benchmarks/garden-fence.ss" 
                ;(this-package-in benchmarks/garden-fence)
                (encrypt-vec encrypt-ra decrypt-vec decrypt-ra))

(define (make-garden-suite name encrypt decrypt)
  (test-suite 
   name
   (check-equal? (encrypt "" 5) "")
   (check-equal? (encrypt "diesisteinklartext" 2)
                 "deitikatxissenlret")
   (check-equal? (encrypt "diesisteinklartext" 6)
                 "dkinleiasertittxse")
   (check-equal? (encrypt "diesisteinklartext" 18)
                 "diesisteinklartext")
   
   (check-equal? (decrypt "" 5) "")
   (check-equal? (decrypt "deitikatxissenlret" 2)
                 "diesisteinklartext")
   (check-equal? (decrypt "dkinleiasertittxse" 6)
                 "diesisteinklartext")
   (check-equal? (decrypt "diesisteinklartext" 18)
                 "diesisteinklartext")))
    

(define/provide-test-suite garden-fence-tests
  (check-equal? (encrypt-vec "" 5) "")
  (check-equal? (encrypt-vec "diesisteinklartext" 2)
                "deitikatxissenlret")
  (check-equal? (encrypt-vec "diesisteinklartext" 6)
                "dkinleiasertittxse")
  (check-equal? (encrypt-vec "diesisteinklartext" 18)
                "diesisteinklartext")
  
  (check-equal? (decrypt-vec "" 5) "")
  (check-equal? (decrypt-vec "deitikatxissenlret" 2)
                "diesisteinklartext")
  (check-equal? (decrypt-vec "dkinleiasertittxse" 6)
                "diesisteinklartext")
  (check-equal? (decrypt-vec "diesisteinklartext" 18)
                "diesisteinklartext")
  
  (check-equal? (encrypt-ra "" 5) "")
  (check-equal? (encrypt-ra "diesisteinklartext" 2)
                "deitikatxissenlret")
  (check-equal? (encrypt-ra "diesisteinklartext" 6)
                "dkinleiasertittxse")
  (check-equal? (encrypt-ra "diesisteinklartext" 18)
                "diesisteinklartext")
  
  (check-equal? (decrypt-ra "" 5) "")
  (check-equal? (decrypt-ra "deitikatxissenlret" 2)
                "diesisteinklartext")
  (check-equal? (decrypt-ra "dkinleiasertittxse" 6)
                "diesisteinklartext")
  (check-equal? (decrypt-ra "diesisteinklartext" 18)
                "diesisteinklartext")
  
)