Testing vector components
This commit is contained in:
parent
6f9e0a934f
commit
2991268ecb
2 changed files with 42 additions and 2 deletions
|
|
@ -54,6 +54,22 @@
|
|||
(assert (number? y))
|
||||
((rtd-mutator (record-rtd component) 'y) component y))
|
||||
|
||||
;; Export vector functions
|
||||
(export vector-= vector-+ vector-- vector-* vector-/
|
||||
vector-magnitude vector-normalize)
|
||||
|
||||
;; TODO: make this function accept any number of vectors
|
||||
(define (vector-= vec1 vec2)
|
||||
(assert (and (record? vec1)
|
||||
(record? vec2)))
|
||||
(assert (eq? (rtd-name (record-rtd vec1))
|
||||
(rtd-name (record-rtd vec2))))
|
||||
(assert (any (lambda (pred) (pred vec1)) '(vector2?)))
|
||||
(cond
|
||||
((vector2? vec1)
|
||||
(and (= (vector-x vec1) (vector-x vec2))
|
||||
(= (vector-y vec1) (vector-y vec2))))))
|
||||
|
||||
;; TODO: make this function accept any number of vectors
|
||||
(define (vector-+ vec1 vec2)
|
||||
(assert (and (record? vec1)
|
||||
|
|
@ -107,8 +123,8 @@
|
|||
(assert (any (lambda (pred) (pred vec)) '(vector2?)))
|
||||
(cond
|
||||
((vector2? vec)
|
||||
(sqrt (expt (vector-x vec) 2)
|
||||
(expt (vector-y vec) 2)))))
|
||||
(sqrt (+ (expt (vector-x vec) 2)
|
||||
(expt (vector-y vec) 2))))))
|
||||
|
||||
;; Normalization
|
||||
(define (vector-normalize vec)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue