@@ -407,4 +407,76 @@ fn matrix_from_numpy() {
407
407
assert_eq ! ( matrix, nalgebra:: Matrix3x1 :: new( 0 , 1 , 2 ) ) ;
408
408
}
409
409
} ) ;
410
+
411
+ Python :: with_gil ( |py| {
412
+ let array = PyArray :: < i32 , _ > :: zeros ( py, ( 2 , 2 , 2 ) , false ) ;
413
+ let array = array. readonly ( ) ;
414
+
415
+ let matrix: Option < nalgebra:: DMatrixSlice < i32 , nalgebra:: Dynamic , nalgebra:: Dynamic > > =
416
+ array. try_as_matrix ( ) ;
417
+ assert ! ( matrix. is_none( ) ) ;
418
+ } ) ;
419
+
420
+ Python :: with_gil ( |py| {
421
+ let array = numpy:: pyarray![ py, [ 0 , 1 , 2 ] , [ 3 , 4 , 5 ] , [ 6 , 7 , 8 ] ] ;
422
+ let array: & PyArray2 < i32 > = py
423
+ . eval ( "a[::-1]" , Some ( [ ( "a" , array) ] . into_py_dict ( py) ) , None )
424
+ . unwrap ( )
425
+ . downcast ( )
426
+ . unwrap ( ) ;
427
+ let array = array. readonly ( ) ;
428
+
429
+ let matrix: Option < nalgebra:: DMatrixSlice < i32 , nalgebra:: Dynamic , nalgebra:: Dynamic > > =
430
+ array. try_as_matrix ( ) ;
431
+ assert ! ( matrix. is_none( ) ) ;
432
+ } ) ;
433
+
434
+ Python :: with_gil ( |py| {
435
+ let array = numpy:: pyarray![ py, [ 0 , 1 , 2 ] , [ 3 , 4 , 5 ] , [ 6 , 7 , 8 ] ] ;
436
+ let array = array. readonly ( ) ;
437
+
438
+ let matrix: Option <
439
+ nalgebra:: MatrixSlice <
440
+ i32 ,
441
+ nalgebra:: Const < 2 > ,
442
+ nalgebra:: Const < 3 > ,
443
+ nalgebra:: Const < 3 > ,
444
+ nalgebra:: Const < 1 > ,
445
+ > ,
446
+ > = array. try_as_matrix ( ) ;
447
+ assert ! ( matrix. is_none( ) ) ;
448
+
449
+ let matrix: Option <
450
+ nalgebra:: MatrixSlice <
451
+ i32 ,
452
+ nalgebra:: Const < 3 > ,
453
+ nalgebra:: Const < 2 > ,
454
+ nalgebra:: Const < 3 > ,
455
+ nalgebra:: Const < 1 > ,
456
+ > ,
457
+ > = array. try_as_matrix ( ) ;
458
+ assert ! ( matrix. is_none( ) ) ;
459
+
460
+ let matrix: Option <
461
+ nalgebra:: MatrixSlice <
462
+ i32 ,
463
+ nalgebra:: Const < 3 > ,
464
+ nalgebra:: Const < 3 > ,
465
+ nalgebra:: Const < 2 > ,
466
+ nalgebra:: Const < 1 > ,
467
+ > ,
468
+ > = array. try_as_matrix ( ) ;
469
+ assert ! ( matrix. is_none( ) ) ;
470
+
471
+ let matrix: Option <
472
+ nalgebra:: MatrixSlice <
473
+ i32 ,
474
+ nalgebra:: Const < 3 > ,
475
+ nalgebra:: Const < 3 > ,
476
+ nalgebra:: Const < 3 > ,
477
+ nalgebra:: Const < 2 > ,
478
+ > ,
479
+ > = array. try_as_matrix ( ) ;
480
+ assert ! ( matrix. is_none( ) ) ;
481
+ } ) ;
410
482
}
0 commit comments