kenzo/test/delta-test.lisp
2015-07-08 18:50:51 -05:00

131 lines
3.6 KiB
Common Lisp

(in-package :kenzo-test)
(in-suite :kenzo)
(test soft-delta-cmpr
(is (equal :less (cat:soft-delta-cmpr (cat:d 12) (cat:d 23)))))
(defun faces (i lst)
(cat:dlop-int-ext
(cat:gmsm
(cat:delta-face i 3 (cat:dlop-ext-int lst)))))
(test delta-face
(is (equal '(1 2 3) (faces 0 '(0 1 2 3))))
(is (equal '(0 2 3) (faces 1 '(0 1 2 3))))
(is (equal '(0 1 3) (faces 2 '(0 1 2 3))))
(is (equal '(0 1 2) (faces 3 '(0 1 2 3))))
(is (equal '(2 4 6) (faces 0 '(0 2 4 6))))
(is (equal '(0 4 6) (faces 1 '(0 2 4 6))))
(is (equal '(0 2 6) (faces 2 '(0 2 4 6))))
(is (equal '(0 2 4) (faces 3 '(0 2 4 6))))
(dotimes (i 4)
(print (cat:soft-delta-face i 3 (cat:d (cat:mask 4)))))
(dotimes (i 4)
(print (cat:soft-delta-face i 3 (cat:d
(cat:dlop-ext-int '(0 2 4 6)))))))
(test delta-bndr
(is (cat:cmbn-zero-p (cat:delta-bndr 0 4)))
(is (cat:cmbn-non-zero-p (cat:delta-bndr 1 3)))
(is (cat:cmbn-non-zero-p (cat:delta-bndr 1 5)))
(is (cat:cmbn-non-zero-p (cat:delta-bndr 1 10)))
(is (cat:cmbn-non-zero-p (cat:delta-bndr 5 63)))
(is (cat:cmbn-non-zero-p (cat:soft-delta-bndr 5 (cat:d (cat:mask 6))))))
(test delta-dgnl
(is (cat:cmbn-non-zero-p (cat:delta-dgnl 3 15)))
(is (cat:cmbn-non-zero-p (cat:delta-dgnl 3 170)))
(is (cat:cmbn-non-zero-p
(cat:soft-delta-dgnl 3 (cat:d (cat:dlop-ext-int '(1 3 5 7))))))
(is (cat:cmbn-non-zero-p (cat:delta-dgnl 0 64))))
(test delta-infinity
(is (equal :less (cat:cmpr (cat:delta-infinity) 2 4)))
(is (equal :equal (cat:cmpr (cat:delta-infinity) 4 4)))
(is (equal :greater (cat:cmpr (cat:delta-infinity) 8 4)))
(signals simple-error (cat:basis (cat:delta-infinity) 1))
(cat:face (cat:delta-infinity) 1 2 21)
(cat:cprd (cat:delta-infinity) 3 15)
(cat:dgnl (cat:delta-infinity) 3 15)
(is (cat:cmbn-non-zero-p (cat:? (cat:delta-infinity) 2 21))))
(test soft-delta-infinity
(progn
(cat:cat-init)
(cat:cmpr (cat:soft-delta-infinity) (cat:d 2) (cat:d 4))
(cat:face (cat:soft-delta-infinity) 1 2
(cat:d (cat:dlop-ext-int '(1 3 5))))
(cat:cprd (cat:soft-delta-infinity) 3 (cat:d 15))
(cat:dgnl (cat:soft-delta-infinity) 3 (cat:d 15))
(cat:? (cat:soft-delta-infinity) 2
(cat:d (cat:dlop-ext-int '(0 2 4))))))
(test basis
(let ((basis (cat:delta-n-basis 3))
(soft-basis (cat:soft-delta-n-basis 3)))
(dotimes (i 5)
(print (funcall basis i)))
(dotimes (i 5)
(print (funcall soft-basis i)))))
(test delta
(progn
(cat:cat-init)
(let ((d3 (cat:delta 3))
(d))
(is (equal :less (cat:cmpr d3 2 4)))
(is (equal :equal (cat:cmpr d3 4 4)))
(is (equal :greater (cat:cmpr d3 8 4)))
(cat:basis d3 1)
(cat:dgnl d3 3 15)
(cat:face d3 1 2 21)
(cat:? d3 2 13)
(setf d (cat:delta-infinity))
(cat:basis d))))
(test soft-delta
(progn
(cat:cat-init)
(let ((d3 (cat:soft-delta 3)))
(cat:cmpr d3 (cat:d 2) (cat:d 4))
(cat:basis d3 1)
(cat:dgnl d3 3 (cat:d 15))
(cat:face d3 1 2 (cat:d 21))
(cat:? d3 2 (cat:d 13)))))
(test eat
(let* ((delta (cat:delta-infinity))
(d (cat:bndr delta))
(s14 (cat:mask 15)))
(cat:cmbn-? d (cat:gnrt-? d 14 s14))
(defun t1 (n)
(time (dotimes (i n) (cat:cmbn-? d (cat:gnrt-? d 14 s14)))))
(compile 't1)
(t1 500)
(setf cat:+too-much-time+ -1)
(t1 500)))
#|
()
(dotimes (i 7)
(print (deltab2-dgnl i (mask (1+ i)))))
(test deltab2-dgnl
(dotimes (i 7)
(print (cat:deltab2-dgnl i (cat:mask (1+ i))))))
|#
(test deltab2-bndr
(cat:deltab2-bndr 1 5)
(cat:deltab2-bndr 3 15))