luv

Workshop wiki

tests.lisp

arithmetic/lisp/tests.lisp

system luv/test · 26 definitions · on GitHub

in-package#:luv.tests
lisp:define-lisp-arithmetic-functioncpu-fog-shape
view-distance:quantity:distance:unit:metre
fog-near:quantity:distance:unit:metre
fog-far:quantity:distance:unit:metre
let*
fog-span
-fog-farfog-near
fog-progress
clamp
/fog-span
quantity0.0d0:unit:one
quantity1.0d0:unit:one
interpret
*fog-progressfog-progress
:quantity:proportion:unit:one
lang:define-arithmetic-functionadd-vectors
left:unit:one:tensor-order1
right:unit:one:tensor-order1
+leftright
lang:define-arithmetic-functionvector-inner-product
left:unit:one:tensor-order1
right:unit:one:tensor-order1
dotleftright
lang:define-arithmetic-functionmove-distance-point
point:quantity:distance:unit:metre:affine-pt
offset:quantity:distance:unit:metre
+pointoffset
lisp:define-lisp-arithmetic-functionoffset-square
value
let*
shifted
+value1.0d0
*shiftedshifted
lisp:define-lisp-arithmetic-functioncpu-triangular-number
count
counted-fold
indexcountsum0
+sumindex
lisp:define-lisp-arithmetic-functioncpu-bounded-triangular-number
count
limit
counted-fold
indexcountsum0
if
<indexlimit
+sumindex
sum
lisp:define-lisp-arithmetic-functioncpu-capped-triangular-number
count
cap
counted-fold
indexcountsum0:until
>sumcap
+sumindex
lisp:define-lisp-arithmetic-functioncpu-folded-remainders
count
counted-fold
indexcountsum0
let*
next
+index1
remainder
modnext3
+sumremainder
defuntree-contains-any-object-p
treeobjects
cond
atomtree
membertreeobjects:test#'eql
consptree
deftestcounted-fold-until-leaves-the-ordinary-loop-early
let

0+1+2+3+4 = 10 passes the cap of 8 after index 4; index 5 is never added, so the fold stops with 10 rather than running on to 45.

deftestordinary-vectors-execute-without-semantic-wrappers
let
ok
equalp
5.0d07.0d09.0d0
funcalladdleftright
ok
=32.0d0
funcalldotleftright
deftestvec3-is-owned-and-realized-by-the-lisp-arithmetic-backend
let*
ok
ok
=6d0
ok
equalp
vec:make-vec36d08d00d0
let
normalized
ok
<
abs
-
vec:vec3-xnormalized
0.6d0
1d-12
ok
<
abs
-
vec:vec3-ynormalized
0.8d0
1d-12
ok
zerop
vec:vec3-znormalized
setf5d0
ok
equal'
3d04d05d0
ok
equalp
vec:make-vec34d06d08d0
funcalladdvector
vec:make-vec31d02d03d0
ok
=14d0
funcalldot
vec:make-vec31d02d03d0
vec:make-vec31d02d03d0
ok
null
find-package"LUVCRAFT.WORLD"
deftestlisp-realizations-bind-storage-contracts-once
let*
realization
lisp:make-lisp-arithmetic-realization'add-vectors:parameter-representation-types'
vectorvector
:result-representation-type'vector
expected
lisp:lisp-arithmetic-realization-parameter-declarationsrealization
ok
compiled-function-pfunction
ok
equalp
4d06d0
funcallfunction
1d02d0
3d04d0
ok
signals
lisp:bind-lisp-arithmetic-realizationrealization
list
math:make-represented-value-declaration:representation-type'real:quantity-specification:source-form'
bad-scalar-slot
secondexpected
'math:declaration-compatibility-error
deftestaffine-arithmetic-is-checked-once-and-executes-numerically
let*
result
lang:arithmetic-function-resultdefinition
specification
lang:arithmetic-expression-quantity-specificationresult
ok
=12.5d0
funcallfunction10.0d02.5d0
ok
signals
lang:parse-arithmetic-function-definition'add-points'
left:quantity:distance:unit:metre:affine-pt
right:quantity:distance:unit:metre:affine-pt
'
+leftright
'lang:arithmetic-language-error