Skip to content

Commit

Permalink
Added tests for interval-map-ref/bounds.
Browse files Browse the repository at this point in the history
  • Loading branch information
cfinegan authored and rmculpepper committed Dec 6, 2017
1 parent 8782aee commit 7e79ffa
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions data-test/tests/data/interval-map.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,56 @@
(interval-map-expand! im a b)
(vec-expand! a b)
(check-all-refs))

;; tests for interval-map-ref/bounds
(let ([im (make-interval-map '())])
;; check ref for empty map
(let-values ([(s e v)
(interval-map-ref/bounds im 5 #t)])
(check-equal? s #f)
(check-equal? e #f)
(check-equal? v #t)))
(let ([im (make-interval-map '(((5 . 10) . "value")))])
;; check refs for map with one value
(let-values ([(s e v)
(interval-map-ref/bounds im 5)])
(check-equal? s 5)
(check-equal? e 10)
(check-equal? v "value"))
(let-values ([(s e v)
(interval-map-ref/bounds im 10 #t)])
(check-equal? s #f)
(check-equal? e #f)
(check-equal? v #t))
(let-values ([(s e v)
(interval-map-ref/bounds im 4 (λ () #t))])
(check-equal? s #f)
(check-equal? e #f)
(check-equal? v #t)))
(let ([im (make-interval-map '(((5 . 10) . "value") ((20 . 30) . "other")))])
;; check refs for map with multiple values
(let-values ([(s e v)
(interval-map-ref/bounds im 4 #t)])
(check-equal? s #f)
(check-equal? e #f)
(check-equal? v #t))
(let-values ([(s e v)
(interval-map-ref/bounds im 7)])
(check-equal? s 5)
(check-equal? e 10)
(check-equal? v "value"))
(let-values ([(s e v)
(interval-map-ref/bounds im 15 #t)])
(check-equal? s #f)
(check-equal? e #f)
(check-equal? v #t))
(let-values ([(s e v)
(interval-map-ref/bounds im 22)])
(check-equal? s 20)
(check-equal? e 30)
(check-equal? v "other"))
(let-values ([(s e v)
(interval-map-ref/bounds im 30 #t)])
(check-equal? s #f)
(check-equal? e #f)
(check-equal? v #t)))

0 comments on commit 7e79ffa

Please sign in to comment.