fix for rootp from Willem Rein Oudshoorn (thank you)
[cl-graph.git] / unit-tests / test-graph.lisp
index aae24be..c55ee29 100644 (file)
 
 (addtest (test-test-vertex)
   test-1
-  (metatilities:bind ((x (float 2.1d0))
-                     (y (float 2.1d0))
-                     (g (make-container 'graph-container)))
+  (let ((x (float 2.1d0))
+       (y (float 2.1d0))
+       (g (make-container 'graph-container)))
     (add-vertex g (+ x y))
     (add-vertex g (+ x y))
     
     (ensure-same (size g) 2)))
 
 (addtest (test-test-vertex)
-  test-1
-  (bind ((x (float 2.1d0))
+  test-2
+  (let ((x (float 2.1d0))
          (y (float 2.1d0))
          (g (make-container 'graph-container :vertex-test #'=)))
     (add-vertex g (+ x y))
 ;;; ---------------------------------------------------------------------------
 
 (deftestsuite test-basic-graph-properties (cl-graph-test)
-  ((graph-undirected (make-container 'graph-container :default-edge-type :undirected))
-   (graph-directed (make-container 'graph-container :default-edge-type :directed)))
+  ((graph-undirected (make-container 'graph-container
+                                    :default-edge-type :undirected))
+   (graph-directed (make-container 'graph-container
+                                  :default-edge-type :directed)))
   :setup ((loop for v in '(a b c d e) do
                 (add-vertex graph-undirected v)
                 (add-vertex graph-directed v))
                 (add-edge-between-vertexes graph-undirected v1 v2)
                 (add-edge-between-vertexes graph-directed v1 v2))))
 
+#+(or)
+(let ((g (make-container 'graph-container
+                        :default-edge-type :directed)))
+  (loop for v in '(a b c d e) do
+                (add-vertex g v))
+  (loop for (v1 . v2) in '((a . b) (a . c) (b . d) (c . e)) do
+       (add-edge-between-vertexes g v1 v2))
+  g)
+
 ;;; ---------------------------------------------------------------------------
 
 (addtest (test-basic-graph-properties)
@@ -143,8 +154,6 @@ a - b - e
 
 (deftestsuite test-change-vertex-value (test-basic-graph-properties) ())
 
-;;; ---------------------------------------------------------------------------
-
 (addtest (test-change-vertex-value)
   test-undirected
   (let ((b (find-vertex graph-undirected 'b)))
@@ -155,9 +164,31 @@ a - b - e
     (ensure (find-edge-between-vertexes graph-undirected 'a 'x))
     (ensure (find-edge-between-vertexes graph-undirected 'x 'd))))
 
+;;;
 
+(deftestsuite test-rootp (cl-graph-test)
+  ((g (make-container 'graph-container
+                     :default-edge-type :directed)))
+  (:setup
+    (loop for (v1 . v2) in '((a . b) (a . c) (b . d) (c . e)) do
+        (add-edge-between-vertexes g v1 v2))))
 
-;;; ---------------------------------------------------------------------------
-;;; test-replace-edge
-;;; ---------------------------------------------------------------------------
+(addtest (test-rootp)
+  directed-edges
+  (ensure (directed-edge-p (first-item (graph-edges g)))))
 
+(addtest(test-rootp)
+  test-source-vertex
+  (ensure (rootp (find-vertex g 'a))))
+
+(addtest(test-rootp)
+  test-sink-vertex
+  (ensure-null (rootp (find-vertex g 'e))))
+
+(addtest(test-rootp)
+  test-middle-vertex
+  (ensure-null (rootp (find-vertex g 'b))))
+
+
+  
+