diff options
Diffstat (limited to 'test/union-find')
| -rw-r--r-- | test/union-find/test-quick-find.lisp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/union-find/test-quick-find.lisp b/test/union-find/test-quick-find.lisp new file mode 100644 index 0000000..f173ea6 --- /dev/null +++ b/test/union-find/test-quick-find.lisp @@ -0,0 +1,45 @@ +(load "../lisp-unit.lisp") +(defpackage :test-quick-find + (:use :common-lisp + :lisp-unit)) + +(in-package :test-quick-find) +(load "../../src/union-find/quick-find.lisp") + +;;; Define tests +(define-test test-create-network + (assert-equal 10 (length (create-network 10))) + (assert-equalp #(0 1 2 3 4) (create-network 5))) + +(define-test test-union_ + (let ((nw (create-network 10))) + (setf nw (union_ nw 1 2)) + (setf nw (union_ nw 0 5)) + (assert-equal (aref nw 1) (aref nw 2)) + (assert-equal (aref nw 0) (aref nw 5)) + (assert-false (equal (aref nw 0) (aref nw 8))) + (assert-false (equal (aref nw 0) (aref nw 2))))) + +(define-test test-connected + (let ((nw (create-network 10))) + (setf nw (union_ nw 1 2)) + (setf nw (union_ nw 0 5)) + (assert-true (connected nw 1 2)) + (assert-true (connected nw 0 5)) + (assert-false (connected nw 0 8)) + (assert-false (connected nw 0 2)))) + +(define-test test-nunion__ + (let ((nw (create-network 10))) + (nunion_ nw 1 2) + (nunion_ nw 0 5) + (assert-equal (aref nw 1) (aref nw 2)) + (assert-equal (aref nw 0) (aref nw 5)) + (assert-false (equal (aref nw 0) (aref nw 8))) + (assert-false (equal (aref nw 0) (aref nw 2))))) + +;; Run all tests +(setq *print-summary* t) ; Details tests locations when running tests +(run-tests :all) + + |
