summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandy <andrew.m.goth@gmail.com>2016-12-11 02:38:50 (GMT)
committerandy <andrew.m.goth@gmail.com>2016-12-11 02:38:50 (GMT)
commit75f89c4ef03e565ed68c0e428954986a29e3748f (patch)
treebcd18019e4028bafb8ef722b69238c2fa4e5209c
parent3463a3eea5563b6394280129cd985b61743bd212 (diff)
downloadtcl-75f89c4ef03e565ed68c0e428954986a29e3748f.zip
tcl-75f89c4ef03e565ed68c0e428954986a29e3748f.tar.gz
tcl-75f89c4ef03e565ed68c0e428954986a29e3748f.tar.bz2
Add [array statistics] tests
-rw-r--r--tests/array.test85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/array.test b/tests/array.test
index 9762695..cf3f63b 100644
--- a/tests/array.test
+++ b/tests/array.test
@@ -909,6 +909,91 @@ test {
}
######################### array-9.*: array statistics ##########################
+# Note: array-9.3 expected results obtained from Tcl version 8.5.7
+test {
+ name array-9.1
+ desc {empty array}
+ {array a} {}
+ body {array statistics a}
+ result
+{0 entries in table, 4 buckets
+number of buckets with 0 entries: 4
+number of buckets with 1 entries: 0
+number of buckets with 2 entries: 0
+number of buckets with 3 entries: 0
+number of buckets with 4 entries: 0
+number of buckets with 5 entries: 0
+number of buckets with 6 entries: 0
+number of buckets with 7 entries: 0
+number of buckets with 8 entries: 0
+number of buckets with 9 entries: 0
+number of buckets with 10 or more entries: 0
+average search distance for entry: 0.0}
+}
+test {
+ name array-9.2
+ desc {single-element array}
+ {array a} {e 1}
+ body {array statistics a}
+ result
+{1 entries in table, 4 buckets
+number of buckets with 0 entries: 3
+number of buckets with 1 entries: 1
+number of buckets with 2 entries: 0
+number of buckets with 3 entries: 0
+number of buckets with 4 entries: 0
+number of buckets with 5 entries: 0
+number of buckets with 6 entries: 0
+number of buckets with 7 entries: 0
+number of buckets with 8 entries: 0
+number of buckets with 9 entries: 0
+number of buckets with 10 or more entries: 0
+average search distance for entry: 1.0}
+}
+test {
+ name array-9.3
+ desc {thousand-element array}
+ body {for {set i 0} {$i < 1000} {incr i} {set a($i) $i}; array statistics a}
+ result
+{1000 entries in table, 1024 buckets
+number of buckets with 0 entries: 285
+number of buckets with 1 entries: 520
+number of buckets with 2 entries: 180
+number of buckets with 3 entries: 36
+number of buckets with 4 entries: 3
+number of buckets with 5 entries: 0
+number of buckets with 6 entries: 0
+number of buckets with 7 entries: 0
+number of buckets with 8 entries: 0
+number of buckets with 9 entries: 0
+number of buckets with 10 or more entries: 0
+average search distance for entry: 1.3}
+}
+test {
+ name array-9.4
+ desc {collision attack}
+ body {
+ for {set i 16} {$i < 29} {incr i} {
+ lappend list [binary format cc $i [expr {-$i * 9}]] $i
+ }
+ array set a $list
+ array statistics a
+ } result
+{13 entries in table, 16 buckets
+number of buckets with 0 entries: 15
+number of buckets with 1 entries: 0
+number of buckets with 2 entries: 0
+number of buckets with 3 entries: 0
+number of buckets with 4 entries: 0
+number of buckets with 5 entries: 0
+number of buckets with 6 entries: 0
+number of buckets with 7 entries: 0
+number of buckets with 8 entries: 0
+number of buckets with 9 entries: 0
+number of buckets with 10 or more entries: 1
+average search distance for entry: 7.0}
+}
+
###################### array-10.*: array search commands #######################
# Cleanup.