# -*- tcl -*-
# Graph tests - arc move-target
# Copyright (c) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net>
# All rights reserved.
# RCS: @(#) $Id: move-target.test,v 1.2 2007/04/12 03:01:55 andreas_kupries Exp $

# Syntax: graph arc move-target ARC NEW-TARGET

# -------------------------------------------------------------------------
# Wrong # args: Missing, Too many

test graph-${impl}-${setimpl}-arc-move-target-1.0 {arc move-target, wrong#args, missing} {
    SETUP
    catch {mygraph arc move-target} res
    mygraph destroy
    set res
} [tmWrong {arc move-target} {arc newtarget} 0]

test graph-${impl}-${setimpl}-arc-move-target-1.1 {arc move-target, wrong#args, missing} {
    SETUP
    catch {mygraph arc move-target a} res
    mygraph destroy
    set res
} [tmWrong {arc move-target} {arc newtarget} 1]

test graph-${impl}-${setimpl}-arc-move-target-1.2 {arc move-target, wrong#args, too many} {
    SETUP
    catch {mygraph arc move-target a b c} res
    mygraph destroy
    set res
} [tmTooMany {arc move-target} {arc newtarget}]

# -------------------------------------------------------------------------
# Logical arguments checks and failures

test graph-${impl}-${setimpl}-arc-move-target-1.3 {arc move-target, missing arc} {
    SETUP
    mygraph node insert 0
    catch {mygraph arc move-target a 0} res
    mygraph destroy
    set res
} [MissingArc $MY a]

test graph-${impl}-${setimpl}-arc-move-target-1.4 {arc move-target, missing node} {
    SETUP
    mygraph node insert 0 1
    mygraph arc  insert 0 1 a
    catch {mygraph arc move-target a 2} res
    mygraph destroy
    set res
} [MissingNode $MY 2]

# -------------------------------------------------------------------------
# Ok arguments.

test graph-${impl}-${setimpl}-arc-move-target-1.5 {arc move-target, changed target} {
    SETUP
    mygraph node insert 0 1 2
    mygraph arc  insert 0 1 a
    mygraph arc  move-target a 2
    set res [mygraph arc target a]
    mygraph destroy
    set res
} 2

test graph-${impl}-${setimpl}-arc-move-target-1.6 {arc move-target, unchanged target} {
    SETUP
    mygraph node insert 0 1
    mygraph arc  insert 0 1 a
    mygraph arc  move-target a 0
    set res [mygraph arc target a]
    mygraph destroy
    set res
} 0

# ---------------------------------------------------  
