tcl: array get/set/names/size/exists/unset commands (+8 tests, 337 total)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 45s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-06 16:29:28 +00:00
parent 40ce4df6b1
commit 35511db15b
2 changed files with 193 additions and 1 deletions

View File

@@ -329,6 +329,54 @@
(run "proc with-temp-var {varname tempval body} {\n upvar 1 $varname v\n set saved $v\n set v $tempval\n uplevel 1 $body\n set v $saved\n}\nset x 100\nwith-temp-var x 999 {\n set captured $x\n}\nlist $x $captured")
:result)
"100 999")
(ok
"array-set-get"
(get
(run "array set a {x 1 y 2 z 3}; array get a x")
:result)
"x 1")
(ok
"array-names"
(get
(run "array set a {p 10 q 20}; lsort [array names a]")
:result)
"p q")
(ok
"array-size"
(get
(run "array set a {x 1 y 2 z 3}; array size a")
:result)
"3")
(ok
"array-exists-true"
(get
(run "array set a {x 1}; array exists a")
:result)
"1")
(ok
"array-exists-false"
(get
(run "array exists nosucharray")
:result)
"0")
(ok
"array-unset-key"
(get
(run "array set a {x 1 y 2 z 3}; array unset a y; lsort [array names a]")
:result)
"x z")
(ok
"array-scalar-access"
(get
(run "set a(foo) hello; set a(bar) world; set a(foo)")
:result)
"hello")
(ok
"array-get-all"
(get
(run "set a(k) v; set pairs [array get a]; llength $pairs")
:result)
"2")
(dict
"passed"
tcl-eval-pass