#lang racket/base

(require brag/examples/01-equal
         rackunit)

(check-equal? (syntax->datum (parse ""))
              '(equal))
(check-equal? (syntax->datum (parse "01"))
              '(equal (zero (equal) "0")
                      (one (equal) "1")))
(check-equal? (syntax->datum (parse "10"))
              '(equal (one (equal) "1")
                      (zero (equal) "0")))
(check-equal? (syntax->datum (parse "0011"))
              '(equal (zero (equal) "0")
                      (one (equal (zero (equal) "0") 
                                  (one (equal) "1"))
                           "1")))
(check-equal? (syntax->datum (parse "0110"))
              '(equal (one (equal (zero (equal) "0")
                                  (one (equal) "1"))
                           "1")
                      (zero (equal) "0")))

(check-equal? (syntax->datum (parse "1100"))
              '(equal (one (equal) "1") 
                      (zero (equal (one (equal) "1") 
                                   (zero (equal) "0"))
                            "0")))

