# -*- tcl -*- # Graph ops tests - Minimum spanning tree/forest per Prim # Copyright (c) 2008-2010 Andreas Kupries # All rights reserved. # RCS: @(#) $Id: prim.test,v 1.4 2010/09/09 21:48:27 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} -body { struct::graph::op::prim } -returnCodes error -result [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} -body { struct::graph::op::prim g x } -returnCodes error -result [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 { SETUP mygraph node insert 0 1 mygraph arc insert 0 1 a } -body { struct::graph::op::prim mygraph } -returnCodes error -result {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 { SETUP } -body { struct::graph::op::prim mygraph } -cleanup { mygraph destroy } -result {} test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-prim-3.1 {prim, nodes, no arcs} -setup { SETUP mygraph node insert 0 1 2 3 4 5 } -body { struct::graph::op::prim mygraph } -cleanup { mygraph destroy } -result {} test graphop-t${treeimpl}-g${impl}-s${setimpl}-st${stkimpl}-q${queimpl}-prim-3.2 {prim, nodes, arcs} -setup { SETUP_A } -body { lsort -dict [struct::graph::op::prim mygraph] } -cleanup { mygraph destroy } -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 { SETUP_B } -body { lsort -dict [struct::graph::op::prim mygraph] } -cleanup { mygraph destroy } -result {A_B A_C C_D D_E S_B} # ---------------------------------------------------