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