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

103 lines
2.7 KiB
Racket

(module mutator-tests mzscheme
(require rackunit)
(require srfi/43/vector-lib)
(provide mutator-tests)
(define mutator-tests
(test-suite
"All tests for mutator"
(test-case
"vector-swap!"
(let ((vec (vector 'a 'b 'c 'd 'e)))
(check-equal?
(begin (vector-swap! vec 1 3)
vec)
'#(a d c b e)))
(let ((vec (vector 0 1 2)))
(check-equal?
(begin (vector-swap! vec 1 1)
vec)
'#(0 1 2))))
(test-case
"vector-fill!"
(let ((vec (vector 1 2 3 4 5)))
(check-equal?
(begin (s:vector-fill! vec 0)
vec)
'#(0 0 0 0 0)))
(let ((vec (vector 1 2 3 4 5)))
(check-equal?
(begin (s:vector-fill! vec 0 1)
vec)
'#(1 0 0 0 0)))
(let ((vec (vector 1 2 3 4 5)))
(check-equal?
(begin (s:vector-fill! vec 0 1 4)
vec)
'#(1 0 0 0 5))))
(test-case
"vector-reverse!"
(let ((vec (vector 1 2 3 4 5)))
(check-equal?
(begin (vector-reverse! vec)
vec)
'#(5 4 3 2 1)))
(let ((vec (vector 1 2 3 4 5)))
(check-equal?
(begin (vector-reverse! vec 1)
vec)
'#(1 5 4 3 2)))
(let ((vec (vector 1 2 3 4 5)))
(check-equal?
(begin (vector-reverse! vec 1 4)
vec)
'#(1 4 3 2 5))))
(test-case
"vector-copy!"
(let ((source (vector 1 2 3 4 5))
(target (vector 0 0 0 0 0)))
(check-equal?
(begin (vector-copy! target 0 source)
target)
source))
(let ((source (vector 1 2 3 4 5))
(target (vector 0 0 0 0 0)))
(check-equal?
(begin (vector-copy! target 1 source 1)
target)
'#(0 2 3 4 5)))
(let ((source (vector 1 2 3 4 5))
(target (vector 0 0 0 0 0)))
(check-equal?
(begin (vector-copy! target 1 source 1 4)
target)
'#(0 2 3 4 0))))
(test-case
"vector-reverse-copy!"
(let ((source (vector 1 2 3 4 5))
(target (vector 0 0 0 0 0)))
(check-equal?
(begin (vector-reverse-copy! target 0 source)
target)
'#(5 4 3 2 1)))
(let ((source (vector 1 2 3 4 5))
(target (vector 0 0 0 0 0)))
(check-equal?
(begin (vector-reverse-copy! target 1 source 1)
target)
'#(0 5 4 3 2)))
(let ((source (vector 1 2 3 4 5))
(target (vector 0 0 0 0 0)))
(check-equal?
(begin (vector-reverse-copy! target 1 source 1 4)
target)
'#(0 4 3 2 0))))
))
)