# -*- tcl -*- # Graph ops tests - Minimum spanning tree/forest per Prim # Copyright (c) 2008 Andreas Kupries # All rights reserved. # RCS: @(#) $Id: prim.test,v 1.3 2009/09/15 19:24:12 andreas_kupries Exp $ # Syntax: struct::graph::op::prim G # ------------------------------------------------------------------------- # Wrong # args: Missing, Too many test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-prim-1.0 {prim, wrong args, missing} { catch {struct::graph::op::prim} msg set msg } [tcltest::wrongNumArgs struct::graph::op::prim {g} 0] test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-prim-1.1 {prim, wrong args, too many} { catch {struct::graph::op::prim g x} msg set msg } [tcltest::tooManyArgs struct::graph::op::prim {g}] # ------------------------------------------------------------------------- # Logical arguments checks and failures test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-prim-2.0 {prim, arcs without weights} { SETUP mygraph node insert 0 1 mygraph arc insert 0 1 a catch {struct::graph::op::prim mygraph} msg set msg } {Operation invalid for graph with unweighted arcs.} # ------------------------------------------------------------------------- # Ok arguments. test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-prim-3.0 {prim, empty graph} { SETUP set result [struct::graph::op::prim mygraph] mygraph destroy set result } {} test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-prim-3.1 {prim, nodes, no arcs} { SETUP mygraph node insert 0 1 2 3 4 5 set result [struct::graph::op::prim mygraph] mygraph destroy set result } {} test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-prim-3.2 {prim, nodes, arcs} { SETUP_A set result [lsort -dict [struct::graph::op::prim mygraph]] mygraph destroy set result } {'arc0_1' 'arc0_3' 'arc3_2' 'arc3_4' 'arc3_6' 'arc6_5'} test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-prim-3.3 {prim, nodes, arcs} { SETUP_B set result [lsort -dict [struct::graph::op::prim mygraph]] mygraph destroy set result } {A_B A_C C_D D_E S_B} # ---------------------------------------------------