racket/collects/tests/srfi/43/searching-tests.rkt
2010-05-17 12:07:32 -04:00

107 lines
2.8 KiB
Racket

(module searching-tests mzscheme
(require rackunit)
(require srfi/43/vector-lib)
(provide searching-tests)
(define searching-tests
(test-suite
"All tests for searching"
(test-case
"vector-index"
(check =
(vector-index even? '#(3 1 4 1 5 9))
2)
(check =
(vector-index < '#(3 1 4 1 5 9 2 5 6) '#(2 7 1 8 2))
1)
(check-false
(vector-index = '#(3 1 4 1 5 9 2 5 6) '#(2 7 1 8 2))))
(test-case
"vector-index-right"
(check =
(vector-index-right even? '#(3 1 4 1 5 9))
2)
(check =
(vector-index-right < '#(3 1 4 1 5 9 2 5 6) '#(2 7 1 8 2))
3)
(check-false
(vector-index-right = '#(3 1 4 1 5 9 2 5 6) '#(2 7 1 8 2))))
(test-case
"vector-skip"
(check =
(vector-skip odd? '#(3 1 4 1 5 9))
2)
(check =
(vector-skip > '#(3 1 4 1 5 9 2 5 6) '#(2 7 1 8 2))
1)
(check-false
(vector-skip = '#(2 7 1 8 2 8) '#(2 7 1 8 2))))
(test-case
"vector-skip-right"
(check =
(vector-skip-right odd? '#(3 1 4 1 5 9))
2)
(check =
(vector-skip-right > '#(3 1 4 1 5 9 2 5 6) '#(2 7 1 8 2))
3)
(check-false
(vector-skip-right = '#(2 7 1 8 2 8) '#(2 7 1 8 2))))
(test-case
"vector-binary-search"
(check =
(vector-binary-search '#(0 3 4 6 8 9) 0 -)
0)
(check =
(vector-binary-search '#(0 3 4 6 8 9) 3 -)
1)
(check =
(vector-binary-search '#(0 3 4 6 8 9) 4 -)
2)
(check =
(vector-binary-search '#(0 3 4 6 8 9) 6 -)
3)
(check =
(vector-binary-search '#(0 3 4 6 8 9) 8 -)
4)
(check =
(vector-binary-search '#(0 3 4 6 8 9) 9 -)
5)
(check-false
(vector-binary-search '#(0 3 4 6 8 9) 5 -))
(check-false
(vector-binary-search '#(0 3 4 6 8 9) -2 -))
(check-false
(vector-binary-search '#(0 3 4 6 8 9) 11 -))
(check-false
(vector-binary-search '#(0 3 4 6 8 9) 1 -)))
(test-case
"vector-any"
(check-false
(vector-any zero? '#(1 2 3 4)))
(check-true
(vector-any zero? '#(2 0 1)))
(check =
(vector-any / '#(1 1) '#(1 0))
1)
(check-false
(vector-any (lambda x #t) '#())))
(test-case
"vector-every"
(check-false
(vector-every zero? '#(0 0 7)))
(check-true
(vector-every (lambda x #f) '#()))
(check =
(vector-every - '#(1 1) '#(1 0))
1))
))
)