1# -*- tcl -*-
2# Graph tests - arc rename
3# Copyright (c) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net>
4# All rights reserved.
5# RCS: @(#) $Id: rename.test,v 1.2 2007/04/12 03:01:55 andreas_kupries Exp $
6
7# Syntax: graph arc rename ARC NEWNAME
8
9# -------------------------------------------------------------------------
10# Wrong # args: Missing, Too many
11
12test graph-${impl}-${setimpl}-arc-rename-1.0 {arc rename, wrong # args, missing} {
13    SETUP
14    catch {mygraph arc rename} result
15    mygraph destroy
16    set result
17} [tmWrong {arc rename} {arc newname} 0]
18
19test graph-${impl}-${setimpl}-arc-rename-1.1 {arc rename, wrong # args, missing} {
20    SETUP
21    catch {mygraph arc rename foo} result
22    mygraph destroy
23    set result
24} [tmWrong {arc rename} {arc newname} 1]
25
26test graph-${impl}-${setimpl}-arc-rename-1.2 {arc rename, wrong # args, too many} {
27    SETUP
28    catch {mygraph arc rename foo far fox} result
29    mygraph destroy
30    set result
31} [tmTooMany {arc rename} {arc newname}]
32
33# -------------------------------------------------------------------------
34# Logical arguments checks and failures
35
36test graph-${impl}-${setimpl}-arc-rename-2.0 {arc rename, missing arc} {
37    SETUP
38    catch {mygraph arc rename 0 foo} result
39    mygraph destroy
40    set result
41} [MissingArc $MY 0]
42
43test graph-${impl}-${setimpl}-arc-rename-2.1 {arc rename, duplicate arc for target} {
44    SETUP
45    mygraph node insert 0 1
46    mygraph arc  insert 0 1 a
47    mygraph arc  insert 0 1 b
48
49    catch {mygraph arc rename a b} result
50    mygraph destroy
51    set result
52} [ExistingArc $MY b]
53
54# -------------------------------------------------------------------------
55# Ok arguments.
56
57test graph-${impl}-${setimpl}-arc-rename-3.0 {arc rename, node linkage} {
58    SETUP
59
60    mygraph node insert a b
61    mygraph arc  insert a b 0
62
63    set     result {}
64    lappend result [mygraph arc source 0]
65    lappend result [mygraph arc target 0]
66    lappend result [mygraph arc exists 0]
67    lappend result [mygraph arc exists snarf]
68    lappend result [mygraph arcs -in   b]
69    lappend result [mygraph arcs -out  a]
70
71    mygraph arc rename 0 snarf
72    lappend result |
73
74    lappend result [mygraph arc source snarf]
75    lappend result [mygraph arc target snarf]
76    lappend result [mygraph arc exists 0]
77    lappend result [mygraph arc exists snarf]
78    lappend result [mygraph arcs -in   b]
79    lappend result [mygraph arcs -out  a]
80
81    mygraph destroy
82    set result
83} {a b 1 0 0 0 | a b 0 1 snarf snarf}
84
85test graph-${impl}-${setimpl}-arc-rename-3.1 {arc rename, attribute transfer} {
86    SETUP
87    mygraph node insert a b
88    mygraph arc  insert a b 0
89    mygraph arc  set 0 data foo
90
91    set     result {}
92    lappend result        [mygraph arc getall 0]
93    lappend result [catch {mygraph arc getall 5}]
94
95    mygraph arc rename 0 5
96
97    lappend result        [mygraph arc getall 5]
98    lappend result [catch {mygraph arc getall 0}]
99
100    mygraph destroy
101    set result
102} {{data foo} 1 {data foo} 1}
103
104# -------------------------------------------------------------------------
105