@@ -263,7 +263,142 @@ class TensorsSpec extends AsyncFreeSpec with Matchers {
263263 }
264264 .run
265265 .toScalaFuture
266+
267+ " readScalar" in doTensors
268+ .flatMap { tensors =>
269+ Do .garbageCollected(tensors.Tensor (42.0f ).readScalar).map {a=>
270+ a should be(42.0f )
271+ }
272+ }
273+ .run
274+ .toScalaFuture
275+
276+ " read1DArray" in doTensors
277+ .flatMap { tensors =>
278+ Do .garbageCollected(tensors.Tensor (Array [Float ](1 ,2 )).read1DArray).map {a=>
279+ a should be(Array [Float ](1 ,2 ))
280+ }
281+ }
282+ .run
283+ .toScalaFuture
284+
285+ " read2DArray" in doTensors
286+ .flatMap { tensors =>
287+ import tensors ._
288+ val array = Array (Array [Float ](1 , 2 ), Array [Float ](3 , 4 ), Array [Float ](5 ,6 ))
289+ Do .garbageCollected(Tensor (array).read2DArray).map {a=>
290+ a(0 ) should be(Array [Float ](1 , 2 ))
291+ a(1 ) should be(Array [Float ](3 , 4 ))
292+ a(2 ) should be(Array [Float ](5 , 6 ))
293+ }
294+ }
295+ .run
296+ .toScalaFuture
297+
298+ " read3DArray" in doTensors
299+ .flatMap { tensors =>
300+ import tensors ._
301+ val array = Array (Array (Array [Float ](1 , 2 ), Array [Float ](3 , 4 ), Array [Float ](5 ,6 )), Array (Array [Float ](7 , 8 ), Array [Float ](9 , 10 ), Array [Float ](11 ,12 )))
302+ Do .garbageCollected(Tensor (array).read3DArray).map { a =>
303+ a(0 )(0 ) should be(Array [Float ](1 ,2 ))
304+ a(0 )(1 ) should be(Array [Float ](3 ,4 ))
305+ a(0 )(2 ) should be(Array [Float ](5 ,6 ))
306+ a(1 )(0 ) should be(Array [Float ](7 ,8 ))
307+ a(1 )(1 ) should be(Array [Float ](9 ,10 ))
308+ a(1 )(2 ) should be(Array [Float ](11 ,12 ))
309+ }
310+ }
311+ .run
312+ .toScalaFuture
313+
314+ " read4DArray" in doTensors
315+ .flatMap { tensors =>
316+ import tensors ._
317+ val array = Array (Array (Array (Array [Float ](1 , 2 ), Array [Float ](3 , 4 ), Array [Float ](5 ,6 )),
318+ Array (Array [Float ](7 , 8 ), Array [Float ](9 , 10 ), Array [Float ](11 ,12 ))),
319+ Array (Array (Array [Float ](13 , 14 ), Array [Float ](15 , 16 ), Array [Float ](17 ,18 )),
320+ Array (Array [Float ](19 , 20 ), Array [Float ](21 , 22 ), Array [Float ](23 ,24 ))))
321+ Do .garbageCollected(Tensor (array).read4DArray).map { a =>
322+ a(0 )(0 )(0 ) should be(Array [Float ](1 ,2 ))
323+ a(0 )(0 )(1 ) should be(Array [Float ](3 ,4 ))
324+ a(0 )(0 )(2 ) should be(Array [Float ](5 ,6 ))
325+ a(0 )(1 )(0 ) should be(Array [Float ](7 ,8 ))
326+ a(0 )(1 )(1 ) should be(Array [Float ](9 ,10 ))
327+ a(0 )(1 )(2 ) should be(Array [Float ](11 ,12 ))
328+ a(1 )(0 )(0 ) should be(Array [Float ](13 ,14 ))
329+ a(1 )(0 )(1 ) should be(Array [Float ](15 ,16 ))
330+ a(1 )(0 )(2 ) should be(Array [Float ](17 ,18 ))
331+ a(1 )(1 )(0 ) should be(Array [Float ](19 ,20 ))
332+ a(1 )(1 )(1 ) should be(Array [Float ](21 ,22 ))
333+ a(1 )(1 )(2 ) should be(Array [Float ](23 ,24 ))
334+ }
335+ }
336+ .run
337+ .toScalaFuture
338+
339+ " read1DSeq" in doTensors
340+ .flatMap { tensors =>
341+ Do .garbageCollected(tensors.Tensor (Seq [Float ](1 ,2 )).read1DSeq).map {a=>
342+ a should be(Seq [Float ](1 ,2 ))
343+ }
344+ }
345+ .run
346+ .toScalaFuture
347+
348+ " read2DSeq" in doTensors
349+ .flatMap { tensors =>
350+ import tensors ._
351+ val seq = Seq (Seq [Float ](1 , 2 ), Seq [Float ](3 , 4 ), Seq [Float ](5 ,6 ))
352+ Do .garbageCollected(Tensor (seq).read2DSeq).map {a=>
353+ a(0 ) should be(Seq [Float ](1 , 2 ))
354+ a(1 ) should be(Seq [Float ](3 , 4 ))
355+ a(2 ) should be(Seq [Float ](5 , 6 ))
356+ }
357+ }
358+ .run
359+ .toScalaFuture
360+
361+ " read3DSeq" in doTensors
362+ .flatMap { tensors =>
363+ import tensors ._
364+ val seq = Seq (Seq (Seq [Float ](1 , 2 ), Seq [Float ](3 , 4 ), Seq [Float ](5 ,6 )), Seq (Seq [Float ](7 , 8 ), Seq [Float ](9 , 10 ), Seq [Float ](11 ,12 )))
365+ Do .garbageCollected(Tensor (seq).read3DSeq).map { a =>
366+ a(0 )(0 ) should be(Seq [Float ](1 ,2 ))
367+ a(0 )(1 ) should be(Seq [Float ](3 ,4 ))
368+ a(0 )(2 ) should be(Seq [Float ](5 ,6 ))
369+ a(1 )(0 ) should be(Seq [Float ](7 ,8 ))
370+ a(1 )(1 ) should be(Seq [Float ](9 ,10 ))
371+ a(1 )(2 ) should be(Seq [Float ](11 ,12 ))
372+ }
373+ }
374+ .run
375+ .toScalaFuture
266376
377+ " read4DSeq" in doTensors
378+ .flatMap { tensors =>
379+ import tensors ._
380+ val seq = Seq (Seq (Seq (Seq [Float ](1 , 2 ), Seq [Float ](3 , 4 ), Seq [Float ](5 ,6 )),
381+ Seq (Seq [Float ](7 , 8 ), Seq [Float ](9 , 10 ), Seq [Float ](11 ,12 ))),
382+ Seq (Seq (Seq [Float ](13 , 14 ), Seq [Float ](15 , 16 ), Seq [Float ](17 ,18 )),
383+ Seq (Seq [Float ](19 , 20 ), Seq [Float ](21 , 22 ), Seq [Float ](23 ,24 ))))
384+ Do .garbageCollected(Tensor (seq).read4DSeq).map { a =>
385+ a(0 )(0 )(0 ) should be(Seq [Float ](1 ,2 ))
386+ a(0 )(0 )(1 ) should be(Seq [Float ](3 ,4 ))
387+ a(0 )(0 )(2 ) should be(Seq [Float ](5 ,6 ))
388+ a(0 )(1 )(0 ) should be(Seq [Float ](7 ,8 ))
389+ a(0 )(1 )(1 ) should be(Seq [Float ](9 ,10 ))
390+ a(0 )(1 )(2 ) should be(Seq [Float ](11 ,12 ))
391+ a(1 )(0 )(0 ) should be(Seq [Float ](13 ,14 ))
392+ a(1 )(0 )(1 ) should be(Seq [Float ](15 ,16 ))
393+ a(1 )(0 )(2 ) should be(Seq [Float ](17 ,18 ))
394+ a(1 )(1 )(0 ) should be(Seq [Float ](19 ,20 ))
395+ a(1 )(1 )(1 ) should be(Seq [Float ](21 ,22 ))
396+ a(1 )(1 )(2 ) should be(Seq [Float ](23 ,24 ))
397+ }
398+ }
399+ .run
400+ .toScalaFuture
401+
267402 " random" in doTensors
268403 .map { tensors =>
269404 import tensors ._
0 commit comments