@@ -6,7 +6,7 @@ if $*KERNEL.bits == 64 {
6
6
@ num . push : num64 ;
7
7
}
8
8
9
- plan @ num * 128 ;
9
+ plan @ num * 145 ;
10
10
11
11
# Basic native num array tests.
12
12
for @ num -> $ T {
@@ -163,27 +163,56 @@ for @num -> $T {
163
163
throws-like { @ arr . push (' omg' , ' wtf' ) }, Exception ,
164
164
" Cannot push non-num/Num to $ t array (multiple push)" ;
165
165
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)" ;
168
181
169
182
@ 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)" ;
171
184
is_approx @ arr [0 ], -1e0 , " unshift to $ t array works (2)" ;
172
185
is_approx @ arr [1 ], 4.2e0 , " unshift to $ t array works (3)" ;
173
186
throws-like { @ arr . unshift (' part of the day not working' ) }, Exception ,
174
187
" Cannot unshift non-num/Num to $ t array" ;
175
188
176
189
@ 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)" ;
178
191
is_approx @ arr [0 ], -3e0 , " unshift multiple to $ t array works (2)" ;
179
192
is_approx @ arr [1 ], -2e0 , " unshift multiple to $ t array works (3)" ;
180
193
is_approx @ arr [2 ], -1e0 , " unshift multiple to $ t array works (4)" ;
181
194
is_approx @ arr [3 ], 4.2e0 , " unshift multiple to $ t array works (5)" ;
182
195
throws-like { @ arr . unshift (' wtf' , ' bbq' ) }, Exception ,
183
196
" Cannot unshift non-num/Num to $ t array (multiple unshift)" ;
184
197
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)" ;
187
216
188
217
@ arr = 1e0 .. 10e0 ;
189
218
my @ replaced = @ arr . splice (3 , 2 , 98e0 , 99e0 , 100e0 );
0 commit comments