@@ -145,3 +145,51 @@ test "panic negative index8" {
145
145
let _ = arr [- 1 :- 3 ]
146
146
147
147
}
148
+
149
+ ///|
150
+ test "fixedarray_sub" {
151
+ // scalar case
152
+ let arr = FixedArray ::makei (10 , i => i )
153
+ inspect (arr [:], content = "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" )
154
+ inspect (arr [1 :], content = "[1, 2, 3, 4, 5, 6, 7, 8, 9]" )
155
+ inspect (arr [:- 2 ], content = "[0, 1, 2, 3, 4, 5, 6, 7]" )
156
+ inspect (arr [3 :- 4 ], content = "[3, 4, 5]" )
157
+ inspect (arr [- 5 :], content = "[5, 6, 7, 8, 9]" )
158
+ arr [5 ] = 100
159
+ inspect (arr [:], content = "[0, 1, 2, 3, 4, 100, 6, 7, 8, 9]" )
160
+ inspect (arr [1 :], content = "[1, 2, 3, 4, 100, 6, 7, 8, 9]" )
161
+ inspect (arr [:- 2 ], content = "[0, 1, 2, 3, 4, 100, 6, 7]" )
162
+ inspect (arr [3 :- 4 ], content = "[3, 4, 100]" )
163
+ inspect (arr [- 5 :], content = "[100, 6, 7, 8, 9]" )
164
+ // reference case
165
+ let arr = FixedArray ::makei (10 , i => (i , i ))
166
+ inspect (
167
+ arr [:],
168
+ content = "[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]" ,
169
+ )
170
+ inspect (
171
+ arr [1 :],
172
+ content = "[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]" ,
173
+ )
174
+ inspect (
175
+ arr [:- 2 ],
176
+ content = "[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7)]" ,
177
+ )
178
+ inspect (arr [3 :- 4 ], content = "[(3, 3), (4, 4), (5, 5)]" )
179
+ inspect (arr [- 5 :], content = "[(5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]" )
180
+ arr [5 ] = (100 , 100 )
181
+ inspect (
182
+ arr [:],
183
+ content = "[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (100, 100), (6, 6), (7, 7), (8, 8), (9, 9)]" ,
184
+ )
185
+ inspect (
186
+ arr [1 :],
187
+ content = "[(1, 1), (2, 2), (3, 3), (4, 4), (100, 100), (6, 6), (7, 7), (8, 8), (9, 9)]" ,
188
+ )
189
+ inspect (
190
+ arr [:- 2 ],
191
+ content = "[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (100, 100), (6, 6), (7, 7)]" ,
192
+ )
193
+ inspect (arr [3 :- 4 ], content = "[(3, 3), (4, 4), (100, 100)]" )
194
+ inspect (arr [- 5 :], content = "[(100, 100), (6, 6), (7, 7), (8, 8), (9, 9)]" )
195
+ }
0 commit comments