aboutsummaryrefslogtreecommitdiff
path: root/Examples/tcl/std_vector/runme.tcl
blob: 2cece9691bda835a4e91d5e71061baf0530642f4 (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
# file: runme.tcl

catch { load ./example[info sharedlibextension] example}

# Exercise IntVector

set iv [IntVector]
$iv push 1
$iv push 3
$iv push 5

puts "IntVector size:      [$iv size]   (should be 3)"
puts "IntVector average:   [average $iv] (should be 3.0)"
puts "IntVector pop:       [$iv pop]   (should be 5)"
puts "IntVector pop:       [$iv pop]   (should be 3)"
puts "IntVector get 0:     [$iv get 0]   (should be 1)"
puts ""

# Exercise DoubleVector

set dv [DoubleVector]
$dv push 2 
$dv push 4
$dv push 6
 
puts "DoubleVector size:   [$dv size]           (should be 3)"
puts "DoubleVector data:   [$dv get 0] [$dv get 1] [$dv get 2] (should be 2.0 4.0 6.0)"
halve_in_place $dv
puts "DoubleVector halved: [$dv get 0] [$dv get 1] [$dv get 2] (should be 1.0 2.0 3.0)"
puts ""

# Complain if unknown is called
rename unknown unknown_orig
proc unknown {args} {
  puts "ERROR: unknown called with: $args"
  uplevel 1 unknown_orig $args
}

puts "average \"1 2 3\": [average [list 1 2 3]]"