Added vertex-pair->edge map to graph-containers
[cl-graph.git] / unit-tests / test-graph-container.lisp
index 87d943a..95ba3c0 100644 (file)
 ;;; tests
 ;;; --------------------------------------------------------------------------- 
 
-(deftestsuite test-graph-container () ())
+(deftestsuite graph-container-test (cl-graph-test) ())
 
 ;;; ---------------------------------------------------------------------------
 
-(addtest (test-graph-container)
+(addtest (graph-container-test)
+  test-empty!
+  (let ((g1 (make-simple-test-graph)))
+    (empty! g1)
+    (ensure-same (size g1) 0)))
+
+;;; ---------------------------------------------------------------------------
+;;; vertex test 
+;;; ---------------------------------------------------------------------------
+
+;;?? should be in test-graph and work for every graph container type
+
+(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 (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-top-level g1))
+    (setf g2 (copy-thing g1))
     (ensure-same (size g1) (size g2))
     (iterate-vertexes
      g1 (lambda (v)
-          (ensure (find-vertex g2 (value v)))))
+          (ensure (find-vertex g2 (element v)))))
     (iterate-edges 
      g1 (lambda (e)
           (ensure (find-edge-between-vertexes 
-                   g2 (value (source-vertex e))
-                   (value (target-vertex e))))))))
+                   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 (test-graph-container)
+(addtest (graph-container-test)
   test-find-edge-between-vertexes
   (let ((g1 (make-simple-test-graph))
         (g2 nil))
-    (setf g2 (copy-top-level g1))
+    (setf g2 (copy-thing g1))
     
     (ensure (not 
              (find-edge-between-vertexes g2 (find-vertex g1 'a) (find-vertex g1 'b))))))
 
 ;;; ---------------------------------------------------------------------------
 
-(addtest (test-graph-container)
-  test-empty!
-  (let ((g1 (make-simple-test-graph)))
-    (empty! g1)
-    (ensure-same (size g1) 0)))
-
-;;; ---------------------------------------------------------------------------
-;;; vertex test 
-;;; ---------------------------------------------------------------------------
-
-;;?? should be in test-graph and work for every graph container type
-
-(addtest (test-graph-container)
-  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)
-  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 '=)))