X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=unit-tests%2Ftest-graph-container.lisp;h=f2e2c89f652f3f13af2cc35db7e32de820e4a376;hb=09ba252fcab440337424122782e305db8f585e83;hp=c2697da98419c16b2857e2f6b0d29dbf07878c7e;hpb=900a931f109598249ebc33bea50b65abf998ed0b;p=cl-graph.git diff --git a/unit-tests/test-graph-container.lisp b/unit-tests/test-graph-container.lisp index c2697da..f2e2c89 100644 --- a/unit-tests/test-graph-container.lisp +++ b/unit-tests/test-graph-container.lisp @@ -1,4 +1,4 @@ -(in-package metabang.graph) +(in-package #:cl-graph-test) ;;; --------------------------------------------------------------------------- ;;; utilities @@ -16,41 +16,11 @@ ;;; tests ;;; --------------------------------------------------------------------------- -(deftestsuite test-graph-container () ()) +(deftestsuite graph-container-test (cl-graph-test) ()) ;;; --------------------------------------------------------------------------- -(addtest (test-graph-container) - test-simple-copying - (let ((g1 (make-simple-test-graph)) - (g2 nil)) - (setf g2 (copy-top-level g1)) - (ensure-same (size g1) (size g2)) - (iterate-vertexes - g1 (lambda (v) - (ensure (find-vertex g2 (value v))))) - (iterate-edges - g1 (lambda (e) - (ensure (find-edge-between-vertexes - g2 (value (source-vertex e)) - (value (target-vertex e)))))))) - -;;; --------------------------------------------------------------------------- - -;; fails because find-edge-between-vertexes for graph containers doesn't -;; care about the graph... -(addtest (test-graph-container) - test-find-edge-between-vertexes - (let ((g1 (make-simple-test-graph)) - (g2 nil)) - (setf g2 (copy-top-level g1)) - - (ensure (not - (find-edge-between-vertexes g2 (find-vertex g1 'a) (find-vertex g1 'b)))))) - -;;; --------------------------------------------------------------------------- - -(addtest (test-graph-container) +(addtest (graph-container-test) test-empty! (let ((g1 (make-simple-test-graph))) (empty! g1) @@ -62,16 +32,53 @@ ;;?? should be in test-graph and work for every graph container type -(addtest (test-graph-container) +(addtest (graph-container-test) no-vertex-test (let ((g (make-container 'graph-container))) (loop for (src dst) in '((a b) (a c) (c d) (a d) (d e) (e f) (b f)) do (add-edge-between-vertexes g (list src) (list dst))) (ensure-same (size g) 14 :test '=))) -(addtest (test-graph-container) +(addtest (graph-container-test) vertex-test (let ((g (make-container 'graph-container :vertex-test #'equal))) (loop for (src dst) in '((a b) (a c) (c d) (a d) (d e) (e f) (b f)) do (add-edge-between-vertexes g (list src) (list dst))) (ensure-same (size g) 6 :test '=))) + + +#| +;;; --------------------------------------------------------------------------- +;;; copying +;;; --------------------------------------------------------------------------- + +(addtest (graph-container-test) + test-simple-copying + (let ((g1 (make-simple-test-graph)) + (g2 nil)) + (setf g2 (copy-thing g1)) + (ensure-same (size g1) (size g2)) + (iterate-vertexes + g1 (lambda (v) + (ensure (find-vertex g2 (element v))))) + (iterate-edges + g1 (lambda (e) + (ensure (find-edge-between-vertexes + g2 (element (source-vertex e)) + (element (target-vertex e)))))))) + +;;; --------------------------------------------------------------------------- + +;; fails because find-edge-between-vertexes for graph containers doesn't +;; care about the graph... +(addtest (graph-container-test) + test-find-edge-between-vertexes + (let ((g1 (make-simple-test-graph)) + (g2 nil)) + (setf g2 (copy-thing g1)) + + (ensure (not + (find-edge-between-vertexes g2 (find-vertex g1 'a) (find-vertex g1 'b)))))) + +|# +