cfad47cfa3/t3compiler/tads3/test/data/vector.t

4b825dc642cb6eb9a060e54bf8d69288fbee4904cfad47cfa334b206c65f22086bcc5d63e6f70944
1
#include "tads.h"
2
#include "t3.h"
3
#include "vector.h"
4
5
main(args)
6
{
7
    local v;
8
    local x;
9
    local v2;
10
11
    v = new Vector(10);
12
    x = v;
13
14
    "initially empty:\n<<sayVector(v)>>";
15
16
    v += 1;
17
    v += 2;
18
    v += 3;
19
    "after adding new members:\n<<sayVector(v)>>";
20
21
    v[1] += 30;
22
    v[2] += 20;
23
    v[3] += 10;
24
    "after incrementing members:\n<<sayVector(v)>>";
25
26
    "x should not be modified:\n<<sayVector(x)>>";
27
28
    v -= 22;
29
    "after subtracting 22:\n<<sayVector(v)>>";
30
31
    v += [50, 60, 70];
32
    "after adding list:\n<<sayVector(v)>>";
33
34
    v -= [31, 50, 70];
35
    "after subtracting list:\n<<sayVector(v)>>";
36
37
    v.insertAt(1, 'a', 'b', 'c');
38
    "after inserting at element 1:\n<<sayVector(v)>>";
39
40
    v.insertAt(2, 'X', 'Y');
41
    "after inserting at element 2:\n<<sayVector(v)>>";
42
43
    v.removeElementAt(3);
44
    "after removing element 3:\n<<sayVector(v)>>";
45
46
    v.removeRange(2, 4);
47
    "after removing elements 2-4:\n<<sayVector(v)>>";
48
49
    v.prepend(999);
50
    "after prepending 999:\n<<sayVector(v)>>";
51
52
    v2 = new Vector(5);
53
    v2 += 21;
54
    v2 += 22;
55
    v2 += 23;
56
57
    v += v2;
58
    "after adding vector:\n<<sayVector(v)>>";
59
60
    v2 -= 22;
61
    v2 -= 23;
62
    v2 += 'a';
63
    v -= v2;
64
    "v2:\n<<sayVector(v2)>>";
65
    "after subtracting vector v2:\n<<sayVector(v)>>";
66
67
    v2.append('b');
68
    "v2 after append:\n<<sayVector(v2)>>";
69
70
    v2.appendAll(['c', 'd', 'e']);
71
    "v2 after appendAll:\n<<sayVector(v2)>>";
72
73
    "\b";
74
    v = new Vector(5, [1, 2]);
75
    v += 3;
76
    x = [4, 5, 6];
77
    x += v;
78
    "list + vector:\n<<sayVector(x)>>";
79
80
    v = new Vector(5, [8]);
81
    v += [2, 4, 6];
82
    x -= v;
83
    "list - vector:\n<<sayVector(x)>>";
84
}
85
86
sayVector(v)
87
{
88
    for (local i = 1, local cnt = v.length() ; i <= cnt ; ++i)
89
        "\t[<<i>>] <<v[i]>>\n";
90
}