1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
# -*- tcl -*-
# Graph ops tests - Connected components.
# Copyright (c) 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net>
# All rights reserved.
# RCS: @(#) $Id: components.test,v 1.3 2009/09/15 19:24:12 andreas_kupries Exp $
# Syntax: struct::graph::op::connectedComponents G
# -------------------------------------------------------------------------
# Wrong # args: Missing, Too many
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-1.0 {connectedComponents, wrong args, missing} {
catch {struct::graph::op::connectedComponents} msg
set msg
} [tcltest::wrongNumArgs struct::graph::op::connectedComponents {g} 0]
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-1.1 {connectedComponents, wrong args, too many} {
catch {struct::graph::op::connectedComponents g x} msg
set msg
} [tcltest::tooManyArgs struct::graph::op::connectedComponents {g}]
# -------------------------------------------------------------------------
# Logical arguments checks and failures
# -------------------------------------------------------------------------
# Ok arguments.
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.0 {connectedComponents, empty graph} {
SETUP
set result [struct::graph::op::connectedComponents mygraph]
mygraph destroy
set result
} {}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.1 {connectedComponents, nodes, no arcs} {
SETUP
mygraph node insert 0 1 2 3 4 5
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {0 1 2 3 4 5}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.2 {connectedComponents, single CC} {
SETUP_A
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{'node0' 'node1' 'node2' 'node3' 'node4' 'node5' 'node6'}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.3 {connectedComponents, single CC} {
SETUP_B
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{A B C D E S}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.4 {connectedComponents, single CC} {
SETUP_C
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{A B C D E F}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.5 {connectedComponents, single CC} {
SETUP_D
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{a b c d f g h i j}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.6 {connectedComponents, single CC} {
SETUP_E
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{1b 1w 2b 2w 3b 3w 4b 4w 5b 5w 6b 6w 7b 7w 8b 8w}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.7 {connectedComponents, single CC} {
SETUP_F
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{1b 1w 2b 2w 3b 3w 4b 4w}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.8 {connectedComponents, single CC} {
SETUP_G
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{1b 1w 2b 2w 3b 3w 4b 4w 5b 5w}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.9 {connectedComponents, single CC} {
SETUP_H
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{A B C D E}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.10 {connectedComponents, single CC} {
SETUP_I
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{N1 N2 N3 N4 N5}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.11 {connectedComponents, multiple CC} {
SETUP_J
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{1 4 5} 2 3 {6 7}}
test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-connectedComponents-3.12 {connectedComponents, multiple CC} {
SETUP_K
set result [setsetcanon [struct::graph::op::connectedComponents mygraph]]
mygraph destroy
set result
} {{No1 No2 No3 No4} No5}
# ---------------------------------------------------
|