Skip to content

Commit 5541d6e

Browse files
committed
Add num @a.append|prepend tests
1 parent b7507b8 commit 5541d6e

File tree

1 file changed

+36
-7
lines changed

1 file changed

+36
-7
lines changed

S09-typed-arrays/native-num.t

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ if $*KERNEL.bits == 64 {
66
@num.push: num64;
77
}
88

9-
plan @num * 128;
9+
plan @num * 145;
1010

1111
# Basic native num array tests.
1212
for @num -> $T {
@@ -163,27 +163,56 @@ for @num -> $T {
163163
throws-like { @arr.push('omg', 'wtf') }, Exception,
164164
"Cannot push non-num/Num to $t array (multiple push)";
165165

166-
is_approx @arr.pop, 10.5e0, "pop from $t array works (1)";
167-
is @arr.elems, 2, "pop from $t array works (2)";
166+
@arr.append(4.2e1);
167+
is @arr.elems, 4, "append to $t array works (1)";
168+
is_approx @arr[3], 4.2e1, "append to $t array works (2)";
169+
throws-like { @arr.append('it real good') }, Exception,
170+
"Cannot append non-num/Num to $t array";
171+
172+
@arr.append(10.1e1, 10.5e1);
173+
is @arr.elems, 6, "append multiple to $t array works (1)";
174+
is_approx @arr[4], 10.1e1, "append multiple to $t array works (2)";
175+
is_approx @arr[5], 10.5e1, "append multiple to $t array works (3)";
176+
throws-like { @arr.append('omg', 'wtf') }, Exception,
177+
"Cannot push non-num/Num to $t array (multiple push)";
178+
179+
is_approx @arr.pop, 10.5e1, "pop from $t array works (1)";
180+
is @arr.elems, 5, "pop from $t array works (2)";
168181

169182
@arr.unshift(-1e0);
170-
is @arr.elems, 3, "unshift to $t array works (1)";
183+
is @arr.elems, 6, "unshift to $t array works (1)";
171184
is_approx @arr[0], -1e0, "unshift to $t array works (2)";
172185
is_approx @arr[1], 4.2e0, "unshift to $t array works (3)";
173186
throws-like { @arr.unshift('part of the day not working') }, Exception,
174187
"Cannot unshift non-num/Num to $t array";
175188

176189
@arr.unshift(-3e0,-2e0);
177-
is @arr.elems, 5, "unshift multiple to $t array works (1)";
190+
is @arr.elems, 8, "unshift multiple to $t array works (1)";
178191
is_approx @arr[0], -3e0, "unshift multiple to $t array works (2)";
179192
is_approx @arr[1], -2e0, "unshift multiple to $t array works (3)";
180193
is_approx @arr[2], -1e0, "unshift multiple to $t array works (4)";
181194
is_approx @arr[3], 4.2e0, "unshift multiple to $t array works (5)";
182195
throws-like { @arr.unshift('wtf', 'bbq') }, Exception,
183196
"Cannot unshift non-num/Num to $t array (multiple unshift)";
184197

185-
is_approx @arr.shift, -3e0, "shift from $t array works (1)";
186-
is @arr.elems, 4, "shift from $t array works (2)";
198+
@arr.prepend(-1e1);
199+
is @arr.elems, 9, "prepend to $t array works (1)";
200+
is_approx @arr[0], -1e1, "prepend to $t array works (2)";
201+
is_approx @arr[1], -3e0, "prepend to $t array works (3)";
202+
throws-like { @arr.prepend('part of the day not working') }, Exception,
203+
"Cannot prepend non-num/Num to $t array";
204+
205+
@arr.prepend(-3e1,-2e1);
206+
is @arr.elems, 11, "prepend multiple to $t array works (1)";
207+
is_approx @arr[0], -3e1, "prepend multiple to $t array works (2)";
208+
is_approx @arr[1], -2e1, "prepend multiple to $t array works (3)";
209+
is_approx @arr[2], -1e1, "prepend multiple to $t array works (4)";
210+
is_approx @arr[3], -3e0, "prepend multiple to $t array works (5)";
211+
throws-like { @arr.prepend('wtf', 'bbq') }, Exception,
212+
"Cannot prepend non-num/Num to $t array (multiple unshift)";
213+
214+
is_approx @arr.shift, -3e1, "shift from $t array works (1)";
215+
is @arr.elems, 10, "shift from $t array works (2)";
187216

188217
@arr = 1e0..10e0;
189218
my @replaced = @arr.splice(3, 2, 98e0, 99e0, 100e0);

0 commit comments

Comments
 (0)