luv

Workshop wiki

tests.lisp

arithmetic/records/tests.lisp

system luv/test · 9 definitions · on GitHub

in-package#:luv.tests
defclassquantity-base-record
position:initarg:position:typevector:quantity
:quantity:distance:unit:metre:tensor-order1
:accessorquantity-record-position
defclassquantity-redefined-record
reading:typedouble-float:quantity
:quantity:distance:unit:metre
records:define-quantity-struct
quantity-structure-record
:constructormake-quantity-structure-record
directioncount
direction
:typevector:quantity
:unit:one:tensor-order1
count0:typefixnum
deftestclos-slot-access-remains-ordinary-raw-access
let*
value
1.0d02.0d03.0d0
record
make-instance'quantity-base-record:positionvalue
ok
eqvalue
quantity-record-positionrecord
setf
quantity-record-positionrecord
4.0d05.0d06.0d0
ok
equalp
4.0d05.0d06.0d0
quantity-record-positionrecord
deftestclos-slot-redefinition-replaces-inspectable-quantity-meaning
unwind-protect
progn
eval'
defclassquantity-redefined-record
reading:typedouble-float:quantity
:quantity:height:unit:metre
eval'
defclassquantity-redefined-record
reading:typedouble-float:quantity
:quantity:distance:unit:metre
deftestconflicting-inherited-quantity-declarations-are-rejected
ok
signals
progn
eval'
defclassquantity-conflicting-record
position:typevector:quantity
:quantity:height:unit:metre:tensor-order1

CLOS may defer effective-slot computation until finalization.

records:record-slot-declaration'quantity-conflicting-record'position
'records:quantity-slot-conflict
deftestdefstruct-retains-layout-and-publishes-the-same-protocol
let*
direction
1.00.00.0
record
make-quantity-structure-recorddirection3
declaration
records:record-slot-declaration'quantity-structure-record'direction
ok
eqdirection
quantity-structure-record-directionrecord
ok
=3
quantity-structure-record-countrecord
ok
=1
math:quantity-specification-tensor-order
ok
null
records:record-slot-declaration'quantity-structure-record'count