1 (in-package #:cl-graph-test)
3 (deftestsuite test-connected-component ()
6 ;;; ---------------------------------------------------------------------------
8 (defun make-connected-component-graph-1 ()
9 (let ((g (make-container 'graph-container)))
10 (loop for label in '(wk-6-0 wp-5-1 wp-1-2 wp-2-3 wb-1-1
11 wp-4-4 bp-5-6 bk-6-5 bb-5-7 bp-2-4
14 (loop for (source target) in '((wk-6-0 wp-5-1)
22 (add-edge-between-vertexes g source target :edge-type :directed
24 (loop for (source target) in '((bk-6-5 wp-4-4)) do
25 (add-edge-between-vertexes g source target :edge-type :directed
27 (loop for (source target) in '((wp-2-3 bp-2-4)) do
28 (add-edge-between-vertexes g source target :edge-type :undirected))
31 ;;; ---------------------------------------------------------------------------
33 (addtest (test-connected-component)
35 (let ((g (make-connected-component-graph-1)))
37 (mapcar #'size (find-connected-components g)) '(2 10) :test 'set-equal)))
39 ;;; ---------------------------------------------------------------------------
41 (addtest (test-connected-component)
42 test-connected-component-count-1
43 (let ((g (make-connected-component-graph-1)))
44 (ensure-same (connected-component-count g) 2 :test '=)))