aboutsummaryrefslogtreecommitdiff
path: root/test/union-find.lisp
diff options
context:
space:
mode:
authorLoic Guegan <manzerberdes@gmx.com>2019-02-24 20:33:55 +0100
committerLoic Guegan <manzerberdes@gmx.com>2019-02-24 20:33:55 +0100
commitb256fc334a6c8868a6159f32adb6dba01fefca86 (patch)
treef98e6dcf0957b3f68502d7f7142e8c218596868d /test/union-find.lisp
parent5725987c8dfd55d4ee0282f0a37779e06052f3c6 (diff)
Add CLOS to union-findHEADmaster
Diffstat (limited to 'test/union-find.lisp')
-rw-r--r--test/union-find.lisp92
1 files changed, 40 insertions, 52 deletions
diff --git a/test/union-find.lisp b/test/union-find.lisp
index 4bfa61d..36eeaee 100644
--- a/test/union-find.lisp
+++ b/test/union-find.lisp
@@ -12,57 +12,45 @@
;;; Test create network
-(define-test create-network-test ()
- ;; ----- Length tests
- (dotimes (nw-size 1000)
- (assert-equal nw-size (length (qf-create-network nw-size))) ; Quick-Find
- (assert-equal nw-size (length (qu-create-network nw-size))) ; Quick-Union
- ;; Weighted-Quick-Union
- (assert-equal 10 (length (get-row (wqu-create-network 10) 0)))
- (assert-equal 10 (length (get-row (wqu-create-network 10) 1)))
- ;; Weighted-Quick-Union with Path Compression
- (assert-equal 10 (length (get-row (wqupc-create-network 10) 0)))
- (assert-equal 10 (length (get-row (wqupc-create-network 10) 1))))
- ;; ----- Value tests
- (assert-equalp #(0 1 2 3 4) (qf-create-network 5)) ; Quick-Find
- (assert-equalp #(0 1 2 3 4) (qu-create-network 5)) ; Quick-Union
- ;; Weighted-Quick-Union
- (assert-true (equalp #(0 1 2 3 4 5 6 7 8 9) (get-row (wqu-create-network 10) 0)))
- (assert-true (equalp (make-array 10 :initial-element 1) (get-row (wqu-create-network 10) 1)))
- ;; Weighted-Quick-Union with Path Compression
- (assert-true (equalp #(0 1 2 3 4 5 6 7 8 9) (get-row (wqupc-create-network 10) 0)))
- (assert-true (equalp (make-array 10 :initial-element 1) (get-row (wqupc-create-network 10) 1))))
-
-
-;; (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)
+(define-test initialize-instance-test ()
+ ;; ----- Network Length Tests
+ (dotimes (test-size 100)
+ (let* ((algo (make-instance 'quick-find :network-size test-size)) ; Quick Find
+ (nw (network algo))
+ (nw-size (network-size algo)))
+ (assert-equal test-size nw-size)
+ (assert-equal test-size (length nw)))
+ (let* ((algo (make-instance 'quick-union :network-size test-size)) ; Quick Union
+ (nw (network algo))
+ (nw-size (network-size algo)))
+ (assert-equal test-size nw-size)
+ (assert-equal test-size (length nw)))
+ (let* ((algo (make-instance 'weighted-quick-union :network-size test-size)) ; Weighted Quick Union
+ (nw (network algo))
+ (nw-size (network-size algo)))
+ (assert-equal test-size nw-size)
+ (assert-equal test-size (length (get-row nw 0)))
+ (assert-equal test-size (length (get-row nw 1))))
+ (let* ((algo (make-instance 'weighted-quick-union-path-compression :network-size test-size)) ; Weighted Quick Union Path Compression
+ (nw (network algo))
+ (nw-size (network-size algo)))
+ (assert-equal test-size nw-size)
+ (assert-equal test-size (length (get-row nw 0)))
+ (assert-equal test-size (length (get-row nw 1)))))
+ ;; ----- Network Values Tests
+ (let* ((algo (make-instance 'quick-find :network-size 5)) ; Quick Find
+ (nw (network algo)))
+ (assert-true #(0 1 2 3 4) nw))
+ (let* ((algo (make-instance 'quick-union :network-size 5)) ; Quick Union
+ (nw (network algo)))
+ (assert-true #(0 1 2 3 4) nw))
+ (let* ((algo (make-instance 'weighted-quick-union :network-size 10)) ; Weighted Quick Union
+ (nw (network algo)))
+ (assert-true (equalp #(0 1 2 3 4 5 6 7 8 9) (get-row nw 0)))
+ (assert-true (equalp (make-array 10 :initial-element 1) (get-row nw 1))))
+ (let* ((algo (make-instance 'weighted-quick-union-path-compression :network-size 10)) ; Weighted Quick Union Path Compression
+ (nw (network algo)))
+ (assert-true (equalp #(0 1 2 3 4 5 6 7 8 9) (get-row nw 0)))
+ (assert-true (equalp (make-array 10 :initial-element 1) (get-row nw 1)))))