Skip to content

Commit 2dd270f

Browse files
authored
Merge pull request #1290 from herbie-fp/codex/add-test-module-for-representation-functions
Add representation and context unit tests
2 parents 60e458c + 36f2a00 commit 2dd270f

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

src/syntax/types.rkt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,32 @@
128128

129129
(define (context-lookup ctx var)
130130
(dict-ref (map cons (context-vars ctx) (context-var-reprs ctx)) var))
131+
132+
(module+ test
133+
(require rackunit)
134+
135+
(define load-herbie-builtins (dynamic-require "load-plugin.rkt" 'load-herbie-builtins))
136+
(load-herbie-builtins)
137+
138+
;; Dummy representation registration
139+
(check-false (repr-exists? 'dummy))
140+
(register-representation! 'dummy 'real number? identity identity identity identity 0 (const #f))
141+
(check-true (repr-exists? 'dummy))
142+
143+
(define dummy (get-representation 'dummy))
144+
(check-equal? (representation-name dummy) 'dummy)
145+
(check-equal? (get-representation 'dummy) dummy)
146+
147+
;; Context operations
148+
(define <b64> (get-representation 'binary64))
149+
(define <bool> (get-representation 'bool))
150+
151+
(define ctx (context '() <b64> '()))
152+
(define ctx1 (context-extend ctx 'x <b64>))
153+
(check-equal? (context-vars ctx1) '(x))
154+
(check-equal? (context-lookup ctx1 'x) <b64>)
155+
156+
(define ctx2 (context-extend ctx1 'y <bool>))
157+
(check-equal? (context-vars ctx2) '(y x))
158+
(check-equal? (context-lookup ctx2 'y) <bool>)
159+
(check-equal? (context-lookup ctx2 'x) <b64>))

0 commit comments

Comments
 (0)