@@ -210,6 +210,100 @@ end
210
210
end
211
211
212
212
@testset " concatenation" begin
213
+ @testset " 0-dim" begin
214
+ x = fill (true )
215
+ x_concrete = Reactant. to_rarray (x)
216
+
217
+ # NOTE [,,,] is a call to `vect`, not `*cat`
218
+ # f = Reactant.compile((x_concrete,)) do x
219
+ # return [x, x, x]
220
+ # end
221
+ # @test f(x_concrete) ≈ ones(3)
222
+
223
+ # vcat
224
+ f = Reactant. compile ((x_concrete,)) do x
225
+ return [x; x; x]
226
+ end
227
+ @test f (x_concrete) == ones (Bool, 3 )
228
+
229
+ # hcat
230
+ f = Reactant. compile ((x_concrete,)) do x
231
+ return [x x x]
232
+ end
233
+ @test f (x_concrete) == ones (Bool, 1 , 3 )
234
+
235
+ # hvcat
236
+ f = Reactant. compile ((x_concrete,)) do x
237
+ return [x x x; x x x]
238
+ end
239
+ @test f (x_concrete) == ones (Bool, 2 , 3 )
240
+
241
+ # typed_vcat
242
+ f = Reactant. compile ((x_concrete,)) do x
243
+ return Int[x; x; x]
244
+ end
245
+ @test f (x_concrete) == ones (Int, 3 )
246
+
247
+ # typed_hcat
248
+ f = Reactant. compile ((x_concrete,)) do x
249
+ return Int[x; x; x]
250
+ end
251
+ @test f (x_concrete) == ones (Int, 1 , 3 )
252
+
253
+ # typed_hvcat
254
+ f = Reactant. compile ((x_concrete,)) do x
255
+ return Int[x x x; x x x]
256
+ end
257
+ @test f (x_concrete) == ones (Int, 2 , 3 )
258
+ end
259
+
260
+ @testset " 1-dim" begin
261
+ x = ones (Bool, 2 )
262
+ x_concrete = Reactant. to_rarray (x)
263
+
264
+ # NOTE [,,,] is a call to `vect`, not `*cat`
265
+ # f = Reactant.compile((x_concrete,)) do x
266
+ # return [x, x, x]
267
+ # end
268
+ # @test f(x_concrete) ≈ ones(3)
269
+
270
+ # vcat
271
+ f = Reactant. compile ((x_concrete,)) do x
272
+ return [x; x; x]
273
+ end
274
+ @test f (x_concrete) == ones (Bool, 6 )
275
+
276
+ # hcat
277
+ f = Reactant. compile ((x_concrete,)) do x
278
+ return [x x x]
279
+ end
280
+ @test f (x_concrete) == ones (Bool, 2 , 3 )
281
+
282
+ # hvcat
283
+ f = Reactant. compile ((x_concrete,)) do x
284
+ return [x x x; x x x]
285
+ end
286
+ @test f (x_concrete) == ones (Bool, 4 , 3 )
287
+
288
+ # typed_vcat
289
+ f = Reactant. compile ((x_concrete,)) do x
290
+ return Int[x; x; x]
291
+ end
292
+ @test f (x_concrete) == ones (Int, 6 )
293
+
294
+ # typed_hcat
295
+ f = Reactant. compile ((x_concrete,)) do x
296
+ return Int[x; x; x]
297
+ end
298
+ @test f (x_concrete) == ones (Int, 2 , 3 )
299
+
300
+ # typed_hvcat
301
+ f = Reactant. compile ((x_concrete,)) do x
302
+ return Int[x x x; x x x]
303
+ end
304
+ @test f (x_concrete) == ones (Int, 4 , 3 )
305
+ end
306
+
213
307
x = ones (2 , 4 , 3 )
214
308
x_concrete = Reactant. to_rarray (x)
215
309
0 commit comments