-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStringBufTests.hx
More file actions
113 lines (98 loc) · 2.82 KB
/
StringBufTests.hx
File metadata and controls
113 lines (98 loc) · 2.82 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package;
class StringBufTests {
var t:Main;
public function new(main:Main) {
t = main;
}
public function run() {
t.section("StringBufBasic");
checkStringBufBasic();
t.section("StringBufAddChar");
checkStringBufAddChar();
t.section("StringBufAddSub");
checkStringBufAddSub();
t.section("StringBufLength");
checkStringBufLength();
t.section("StringBufEdgeCases");
checkStringBufEdgeCases();
}
function checkStringBufBasic() {
var buf = new StringBuf();
buf.add("Hello");
buf.add(" ");
buf.add("World");
var result = buf.toString();
t.stringEquals("Hello World", result, "basic concat");
var buf2 = new StringBuf();
buf2.add(42);
buf2.add(true);
buf2.add(3.14);
var result2 = buf2.toString();
var has42 = StringTools.contains(result2, "42");
t.isTrue(has42, "mixed types contains 42");
var hasTrue = StringTools.contains(result2, "true");
t.isTrue(hasTrue, "mixed types contains true");
var hasPi = StringTools.contains(result2, "3.14");
t.isTrue(hasPi, "mixed types contains 3.14");
var buf3 = new StringBuf();
var empty = buf3.toString();
t.stringEquals("", empty, "empty buf");
}
function checkStringBufAddChar() {
var buf = new StringBuf();
buf.addChar(72);
buf.addChar(105);
var r1 = buf.toString();
t.stringEquals("Hi", r1, "addChar Hi");
buf.addChar(33);
var r2 = buf.toString();
t.stringEquals("Hi!", r2, "addChar append !");
}
function checkStringBufAddSub() {
var buf = new StringBuf();
buf.addSub("Hello World", 6);
var r1 = buf.toString();
t.stringEquals("World", r1, "addSub from 6");
var buf2 = new StringBuf();
buf2.addSub("Hello World", 0, 5);
var r2 = buf2.toString();
t.stringEquals("Hello", r2, "addSub 0,5");
var buf3 = new StringBuf();
buf3.addSub("abcdef", 2, 3);
var r3 = buf3.toString();
t.stringEquals("cde", r3, "addSub 2,3");
}
function checkStringBufLength() {
var buf = new StringBuf();
t.intEquals(0, buf.length, "empty length");
buf.add("Hi");
t.intEquals(2, buf.length, "after add Hi");
buf.addChar(33);
t.intEquals(3, buf.length, "after addChar");
buf.addSub("abcdef", 1, 3);
t.intEquals(6, buf.length, "after addSub");
}
function checkStringBufEdgeCases() {
var buf = new StringBuf();
buf.add("");
var r1 = buf.toString();
t.stringEquals("", r1, "add empty string");
t.intEquals(0, buf.length, "empty add length");
buf.add("test");
buf.add("");
var r2 = buf.toString();
t.stringEquals("test", r2, "add then empty");
var buf2 = new StringBuf();
buf2.addSub("hello", 0, 0);
var r3 = buf2.toString();
t.stringEquals("", r3, "addSub zero len");
var buf3 = new StringBuf();
buf3.add("a");
buf3.add("b");
buf3.add("c");
var s1 = buf3.toString();
var s2 = buf3.toString();
t.stringEquals("abc", s1, "toString first call");
t.stringEquals(s1, s2, "toString idempotent");
}
}