summaryrefslogtreecommitdiff
path: root/tests/array.test
blob: efc875cd81c28e365b19a273dfacc755fad39426 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
source [file dirname [info script]]/testing.tcl

array set a {
	1 one
	2 two
	22 "twenty two"
	3 three
}

test array-1.1 "array exists - true" {
	array exists a
} {1}

test array-1.2 "array exists - false" {
	array exists b
} {0}

test array-1.3 "array size" {
	array size a
} {4}

test array-1.4 "array size - nonexistant" {
	array size b
} {0}

test array-1.5 "array get" {
	set result {}
	foreach {name value} [array get a] {
		lappend result $name $value
	}
	lsort $result
} {1 2 22 3 one three {twenty two} two}

test array-1.6 "array get - pattern" {
	set result {}
	foreach {name value} [array get a 2*] {
		lappend result $name $value
	}
	lsort $result
} {2 22 {twenty two} two}

test array-1.7 "array names" {
	lsort [array names a]
} {1 2 22 3}

test array-1.8 "array get - pattern" {
	lsort [array names a 2*]
} {2 22}

#set b $a
array set b [array get a]

test array-1.9 "array set - replace" {
	array set b {22 twenty-two}
	set b(22)
} {twenty-two}

test array-1.10 "array unset - pattern" {
	array unset b 2*
	array names b
} {1 3}

test array-1.11 "array unset - all" {
	array unset b
	list [array size b] [array exists b]
} {0 0}

test array-1.12 "array set to invalid variable" {
	unset -nocomplain a b
	set a 1
	catch {array set a(1) {b c}}
} {1}

testreport