1# -*- tcl -*- 2# Graph tests - node degree 3# Copyright (c) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> 4# All rights reserved. 5# RCS: @(#) $Id: degree.test,v 1.2 2007/04/12 03:01:56 andreas_kupries Exp $ 6 7# Syntax: graph node degree ?-in|-out? NODE 8 9# ------------------------------------------------------------------------- 10# Wrong # args: Missing, Too many 11 12test graph-${impl}-${setimpl}-node-degree-1.0 {node degree, wrong#args, missing} { 13 SETUP 14 catch {mygraph node degree} msg 15 mygraph destroy 16 set msg 17} "wrong # args: should be \"$MY node degree ?-in|-out? node\"" 18 19test graph-${impl}-${setimpl}-node-degree-1.1 {node degree, wrong#args, too many} { 20 SETUP 21 catch {mygraph node degree foo bar baz} msg 22 mygraph destroy 23 set msg 24} "wrong # args: should be \"$MY node degree ?-in|-out? node\"" 25 26# ------------------------------------------------------------------------- 27# Logical arguments checks and failures 28 29test graph-${impl}-${setimpl}-node-degree-2.0 {node degree, missing node} { 30 SETUP 31 catch {mygraph node degree node0} msg 32 mygraph destroy 33 set msg 34} [MissingNode $MY node0] 35 36test graph-${impl}-${setimpl}-node-degree-2.1 {node degree, bad switch} { 37 SETUP 38 catch {mygraph node degree -foo node0} msg 39 mygraph destroy 40 set msg 41} "bad option \"-foo\": must be -in or -out" 42 43# ------------------------------------------------------------------------- 44# Ok arguments. 45 46test graph-${impl}-${setimpl}-node-degree-3.0 {node degree} { 47 SETUP 48 mygraph node insert node0 node1 node2 node3 node4 node5 49 50 mygraph arc insert node1 node2 arc0 51 mygraph arc insert node3 node3 arc1 52 mygraph arc insert node4 node5 arc2 53 mygraph arc insert node4 node5 arc3 54 mygraph arc insert node4 node5 arc4 55 mygraph arc insert node5 node2 arc5 56 57 set result {} 58 lappend result node0 - 59 lappend result [mygraph node degree node0] 60 lappend result [mygraph node degree -in node0] 61 lappend result [mygraph node degree -out node0] 62 lappend result node1 - 63 lappend result [mygraph node degree node1] 64 lappend result [mygraph node degree -in node1] 65 lappend result [mygraph node degree -out node1] 66 lappend result node2 - 67 lappend result [mygraph node degree node2] 68 lappend result [mygraph node degree -in node2] 69 lappend result [mygraph node degree -out node2] 70 lappend result node3 - 71 lappend result [mygraph node degree node3] 72 lappend result [mygraph node degree -in node3] 73 lappend result [mygraph node degree -out node3] 74 lappend result node4 - 75 lappend result [mygraph node degree node4] 76 lappend result [mygraph node degree -in node4] 77 lappend result [mygraph node degree -out node4] 78 lappend result node5 - 79 lappend result [mygraph node degree node5] 80 lappend result [mygraph node degree -in node5] 81 lappend result [mygraph node degree -out node5] 82 83 mygraph destroy 84 set result 85} {node0 - 0 0 0 node1 - 1 0 1 node2 - 2 2 0 node3 - 2 1 1 node4 - 3 0 3 node5 - 4 3 1} 86 87# ------------------------------------------------------------------------- 88