125 lines
3.9 KiB
Common Lisp
125 lines
3.9 KiB
Common Lisp
;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*
|
|
|
|
(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)))
|
|
|
|
|
|
(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))
|