linsert.test
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # Commands covered:  linsert
  2. #
  3. # This file contains a collection of tests for one or more of the Tcl
  4. # built-in commands.  Sourcing this file into Tcl runs the tests and
  5. # generates output for errors.  No output means no errors were found.
  6. #
  7. # Copyright (c) 1991-1993 The Regents of the University of California.
  8. # Copyright (c) 1994 Sun Microsystems, Inc.
  9. # Copyright (c) 1998-1999 by Scriptics Corporation.
  10. #
  11. # See the file "license.terms" for information on usage and redistribution
  12. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  13. #
  14. # RCS: @(#) $Id: linsert.test,v 1.8 2000/04/10 17:19:01 ericm Exp $
  15. if {[lsearch [namespace children] ::tcltest] == -1} {
  16.     package require tcltest
  17.     namespace import -force ::tcltest::*
  18. }
  19. catch {unset lis}
  20. catch {rename p ""}
  21. test linsert-1.1 {linsert command} {
  22.     linsert {1 2 3 4 5} 0 a
  23. } {a 1 2 3 4 5}
  24. test linsert-1.2 {linsert command} {
  25.     linsert {1 2 3 4 5} 1 a
  26. } {1 a 2 3 4 5}
  27. test linsert-1.3 {linsert command} {
  28.     linsert {1 2 3 4 5} 2 a
  29. } {1 2 a 3 4 5}
  30. test linsert-1.4 {linsert command} {
  31.     linsert {1 2 3 4 5} 3 a
  32. } {1 2 3 a 4 5}
  33. test linsert-1.5 {linsert command} {
  34.     linsert {1 2 3 4 5} 4 a
  35. } {1 2 3 4 a 5}
  36. test linsert-1.6 {linsert command} {
  37.     linsert {1 2 3 4 5} 5 a
  38. } {1 2 3 4 5 a}
  39. test linsert-1.7 {linsert command} {
  40.     linsert {1 2 3 4 5} 2 one two {three $four
  41. } {1 2 one two {three {$four} 3 4 5}
  42. test linsert-1.8 {linsert command} {
  43.     linsert {{one $two {three  four  five} 2 a b c
  44. } {{one {$two} a b c {three { four} { five}}
  45. test linsert-1.9 {linsert command} {
  46.     linsert {{1 2} {3 4} {5 6} {7 8}} 2 {x y} {a b}
  47. } {{1 2} {3 4} {x y} {a b} {5 6} {7 8}}
  48. test linsert-1.10 {linsert command} {
  49.     linsert {} 2 a b c
  50. } {a b c}
  51. test linsert-1.11 {linsert command} {
  52.     linsert {} 2 {}
  53. } {{}}
  54. test linsert-1.12 {linsert command} {
  55.     linsert {a b "c c" d e} 3 1
  56. } {a b {c c} 1 d e}
  57. test linsert-1.13 {linsert command} {
  58.     linsert { a b c d} 0 1 2
  59. } {1 2 a b c d}
  60. test linsert-1.14 {linsert command} {
  61.     linsert {a b c {d e f}} 4 1 2
  62. } {a b c {d e f} 1 2}
  63. test linsert-1.15 {linsert command} {
  64.     linsert {a b c {  abc} 4 q r
  65. } {a b c {  q r abc}
  66. test linsert-1.16 {linsert command} {
  67.     linsert {a b c { abc} 4 q r
  68. } {a b c { q r abc}
  69. test linsert-1.17 {linsert command} {
  70.     linsert {a b c} end q r
  71. } {a b c q r}
  72. test linsert-1.18 {linsert command} {
  73.     linsert {a} end q r
  74. } {a q r}
  75. test linsert-1.19 {linsert command} {
  76.     linsert {} end q r
  77. } {q r}
  78. test linsert-1.20 {linsert command, use of end-int index} {
  79.     linsert {a b c d} end-2 e f
  80. } {a b e f c d}
  81. test linsert-2.1 {linsert errors} {
  82.     list [catch linsert msg] $msg
  83. } {1 {wrong # args: should be "linsert list index element ?element ...?"}}
  84. test linsert-2.2 {linsert errors} {
  85.     list [catch {linsert a b} msg] $msg
  86. } {1 {wrong # args: should be "linsert list index element ?element ...?"}}
  87. test linsert-2.3 {linsert errors} {
  88.     list [catch {linsert a 12x 2} msg] $msg
  89. } {1 {bad index "12x": must be integer or end?-integer?}}
  90. test linsert-2.4 {linsert errors} {
  91.     list [catch {linsert { 12 2} msg] $msg
  92. } {1 {unmatched open brace in list}}
  93. test linsert-3.1 {linsert won't modify shared argument objects} {
  94.     proc p {} {
  95.         linsert "a b c" 1 "x y"
  96.         return "a b c"
  97.     }
  98.     p
  99. } "a b c"
  100. test linsert-3.2 {linsert won't modify shared argument objects} {
  101.     catch {unset lis}
  102.     set lis [format "a "%s" c" "b"]
  103.     linsert $lis 0 [string length $lis]
  104. } "7 a b c"
  105. # cleanup
  106. catch {unset lis}
  107. catch {rename p ""}
  108. ::tcltest::cleanupTests
  109. return