diff options
Diffstat (limited to 'tests/lrepeat.test')
-rw-r--r-- | tests/lrepeat.test | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/lrepeat.test b/tests/lrepeat.test new file mode 100644 index 0000000..5e9d70f --- /dev/null +++ b/tests/lrepeat.test @@ -0,0 +1,77 @@ +# Commands covered: lrepeat +# +# This file contains a collection of tests for one or more of the Tcl +# built-in commands. Sourcing this file into Tcl runs the tests and +# generates output for errors. No output means no errors were found. +# +# Copyright (c) 2003 by Simon Geard. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +if {[lsearch [namespace children] ::tcltest] == -1} { + package require tcltest 2 + namespace import -force ::tcltest::* +} + +## Arg errors +test lrepeat-1.1 {error cases} { + -body { + lrepeat + } + -returnCodes 1 + -result {wrong # args: should be "lrepeat positiveCount value ?value ...?"} +} +test lrepeat-1.2 {error cases} { + -body { + lrepeat 1 + } + -returnCodes 1 + -result {wrong # args: should be "lrepeat positiveCount value ?value ...?"} +} +test lrepeat-1.3 {error cases} { + -body { + lrepeat a 1 + } + -returnCodes 1 + -result {expected integer but got "a"} +} +test lrepeat-1.4 {error cases} { + -body { + lrepeat -3 1 + } + -returnCodes 1 + -result {must have a count of at least 1} +} +test lrepeat-1.5 {error cases} { + -body { + lrepeat 0 + } + -returnCodes 1 + -result {wrong # args: should be "lrepeat positiveCount value ?value ...?"} +} +test lrepeat-1.6 {error cases} { + -body { + lrepeat 3.5 1 + } + -returnCodes 1 + -result {expected integer but got "3.5"} +} + +## Okay +test lrepeat-2.1 {normal cases} { + lrepeat 10 a +} {a a a a a a a a a a} +test lrepeat-2.2 {normal cases} { + lrepeat 3 [lrepeat 3 0] +} {{0 0 0} {0 0 0} {0 0 0}} +test lrepeat-2.3 {normal cases} { + lrepeat 3 a b c +} {a b c a b c a b c} +test lrepeat-2.4 {normal cases} { + lrepeat 3 [lrepeat 2 a] b c +} {{a a} b c {a a} b c {a a} b c} + +# cleanup +::tcltest::cleanupTests +return |