# -*- tcl -*- # Graph ops tests - Connected components. # Copyright (c) 2008 Andreas Kupries # 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} # ---------------------------------------------------