20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#ifndef _WIN32
#define ZD "%zd"
#else
#define ZD "%u"
#endif
#define NUM_TESTS 62
#define SUCCESS \
printf("\r\033[1;%dmTests successful: " ZD "/%d\033[0m", \
(i == NUM_TESTS - 1 ? 32 : 33), i + 1, NUM_TESTS); \
fflush(stdout);
#define FAIL \
printf("\r\033[K\033[1;31mTest " ZD "/%d failed!\033[m\n", \
i + 1, NUM_TESTS); \
|
|
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#ifndef _WIN32
#define ZD "%zd"
#else
#define ZD "%u"
#endif
#define NUM_TESTS 68
#define SUCCESS \
printf("\r\033[1;%dmTests successful: " ZD "/%d\033[0m", \
(i == NUM_TESTS - 1 ? 32 : 33), i + 1, NUM_TESTS); \
fflush(stdout);
#define FAIL \
printf("\r\033[K\033[1;31mTest " ZD "/%d failed!\033[m\n", \
i + 1, NUM_TESTS); \
|
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
CHECK_EXCEPT([@"foo" substringFromIndex: 2
toIndex: 4], OFOutOfRangeException)
CHECK_EXCEPT([@"foo" substringFromIndex: 4
toIndex: 4], OFOutOfRangeException)
CHECK_EXCEPT([@"foo" substringFromIndex: 2
toIndex: 0], OFInvalidArgumentException)
/* Split tests */
a = [@"fooXXbarXXXXbazXXXX" splitWithDelimiter: @"XX"];
CHECK([[a objectAtIndex: j++] isEqual: @"foo"])
CHECK([[a objectAtIndex: j++] isEqual: @"bar"])
CHECK([[a objectAtIndex: j++] isEqual: @""])
CHECK([[a objectAtIndex: j++] isEqual: @"baz"])
CHECK([[a objectAtIndex: j++] isEqual: @""])
|
>
>
>
>
>
>
>
|
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
CHECK_EXCEPT([@"foo" substringFromIndex: 2
toIndex: 4], OFOutOfRangeException)
CHECK_EXCEPT([@"foo" substringFromIndex: 4
toIndex: 4], OFOutOfRangeException)
CHECK_EXCEPT([@"foo" substringFromIndex: 2
toIndex: 0], OFInvalidArgumentException)
/* Misc tests */
CHECK([[@"foo" stringByAppendingString: @"bar"] isEqual: @"foobar"])
CHECK([@"foobar" hasPrefix: @"foo"])
CHECK([@"foobar" hasSuffix: @"bar"])
CHECK(![@"foobar" hasPrefix: @"foobar0"])
CHECK(![@"foobar" hasSuffix: @"foobar0"])
/* Split tests */
a = [@"fooXXbarXXXXbazXXXX" splitWithDelimiter: @"XX"];
CHECK([[a objectAtIndex: j++] isEqual: @"foo"])
CHECK([[a objectAtIndex: j++] isEqual: @"bar"])
CHECK([[a objectAtIndex: j++] isEqual: @""])
CHECK([[a objectAtIndex: j++] isEqual: @"baz"])
CHECK([[a objectAtIndex: j++] isEqual: @""])
|
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
|
CHECK([[@"y" stringByXMLUnescaping] isEqual: @"y"]);
CHECK([[@"ä" stringByXMLUnescaping] isEqual: @"ä"]);
CHECK([[@"€" stringByXMLUnescaping] isEqual: @"€"]);
CHECK([[@"𝄞" stringByXMLUnescaping] isEqual: @"𝄞"]);
CHECK_EXCEPT([@"&#;" stringByXMLUnescaping], OFInvalidEncodingException)
CHECK_EXCEPT([@"&#x;" stringByXMLUnescaping],
OFInvalidEncodingException)
CHECK_EXCEPT([@"&#xg;" stringByXMLUnescaping],
OFInvalidEncodingException)
puts("");
return 0;
}
|
>
>
|
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
|
CHECK([[@"y" stringByXMLUnescaping] isEqual: @"y"]);
CHECK([[@"ä" stringByXMLUnescaping] isEqual: @"ä"]);
CHECK([[@"€" stringByXMLUnescaping] isEqual: @"€"]);
CHECK([[@"𝄞" stringByXMLUnescaping] isEqual: @"𝄞"]);
CHECK_EXCEPT([@"&#;" stringByXMLUnescaping], OFInvalidEncodingException)
CHECK_EXCEPT([@"&#x;" stringByXMLUnescaping],
OFInvalidEncodingException)
CHECK_EXCEPT([@"&#g;" stringByXMLUnescaping],
OFInvalidEncodingException)
CHECK_EXCEPT([@"&#xg;" stringByXMLUnescaping],
OFInvalidEncodingException)
puts("");
return 0;
}
|