(define (test-interval-contains?) (and (equal? (interval-contains? '(5 8) 6) #t) (equal? (interval-contains? '(5 8) 5) #t) (equal? (interval-contains? '(5 8) 4) #f) (equal? (interval-contains? '(5 5) 14) #f) (equal? (interval-contains? '(5 5) 5) #t))) (define (test-interval-intersects?) (and (equal? (interval-intersects? '(1 4) '(2 5)) #t) (equal? (interval-intersects? '(1 4) '(4 5)) #t) (equal? (interval-intersects? '(2 5) '(1 14)) #t) (equal? (interval-intersects? '(1 14) '(2 5)) #t) (equal? (interval-intersects? '(1 3) '(12 17)) #f) (equal? (interval-intersects? '(12 17) '(1 3)) #f))) (define (test-last) (and (equal? (last '(1 5 2 4)) 4) (equal? (last '(c)) 'c))) (define (test-all-but-last) (and (equal? (all-but-last '(1 5 2 4)) '(1 5 2)) (equal? (all-but-last '(c)) '()))) (define (test-replace) (and (equal? (replace 5 7 '()) '()) (equal? (replace 5 7 '(1 5 2 5 4)) '(1 7 2 7 4)) (equal? (replace 5 7 '(7 5 7 5 7)) '(7 7 7 7 7)) (equal? (replace 5 7 '(1 3 2 6 4)) '(1 3 2 6 4)))) (define (test-remove-first) (and (equal? (remove-first 'b '(a b c b d)) '(a c b d)) (equal? (remove-first 'b '(a c d)) '(a c d)) (equal? (remove-first 'b '(a c b d)) '(a c d)) (equal? (remove-first 'b '()) '()))) (define (test-remove-last) (and (equal? (remove-last 'b '(a b c b d)) '(a b c d)) (equal? (remove-last 'b '(a c d)) '(a c d)) (equal? (remove-last 'b '(a c b d)) '(a c d)) (equal? (remove-last 'b '(a b c b d b e b f)) '(a b c b d b e f)) (equal? (remove-last 'b '(b a b c b d)) '(b a b c d))))