8071a087f7c80efd38f4524913974625c9a65c6d
[cl-graph.git] / dev / test-graph-metrics.lisp
1 (in-package metabang.graph)
2
3 ;;; ---------------------------------------------------------------------------
4
5 (lift:deftestsuite test-vertex-triangle-count ()
6   ((g (make-container 'graph-container))))
7
8 (lift:deftestsuite test-vertex-triangle-count-1 (test-vertex-triangle-count)
9   ()
10   (:setup
11    (loop for v in '(a b c d e f g h) do (add-vertex g v))
12    (loop for (s d) in '((a b) (b c) (a c) (b d) (d e) (d f) (d g) (e f) (f g) (g h)) do
13          (add-edge-between-vertexes g s d))))
14
15 (lift:addtest (test-vertex-triangle-count-1)
16   (lift:ensure-same (vertex-triangle-count (find-vertex g 'a)) 1 :test '=))
17
18
19 (lift:addtest (test-vertex-triangle-count-1)
20   (lift:ensure-same (vertex-triangle-count (find-vertex g 'd)) 2 :test '=))
21
22 (lift:addtest (test-vertex-triangle-count-1)
23   (lift:ensure-same (vertex-triangle-count (find-vertex g 'h)) 0 :test '=)) 
24
25 (lift:deftestsuite test-vertex-triangle-count-2 (test-vertex-triangle-count)
26   ()
27   (:setup
28    (loop for v in '(a b c d e) do (add-vertex g v))
29    (loop for (s d) in '((a b) (b c) (a c) (c d) (c e)) do
30          (add-edge-between-vertexes g s d))))
31
32 (lift:addtest (test-vertex-triangle-count-2)
33   (lift:ensure-same (vertex-triangle-count (find-vertex g 'c)) 1 :test '=)
34   (lift:ensure-same (vertex-triangle-count (find-vertex g 'd)) 0 :test '=))
35
36 (lift:addtest (test-vertex-triangle-count-2)
37   (lift:ensure-same (average-local-clustering-coefficient g) 
38                (float (/ 13 30)) :test 'samep))