@@ -306,3 +306,39 @@ unsafe impl Element for PyObject {
306
306
PyArrayDescr :: object ( py)
307
307
}
308
308
}
309
+
310
+ #[ cfg( test) ]
311
+ mod tests {
312
+ use cfg_if:: cfg_if;
313
+
314
+ use super :: { c32, c64, Element , PyArrayDescr } ;
315
+
316
+ #[ test]
317
+ fn test_dtype_names ( ) {
318
+ fn type_name < T : Element > ( py : pyo3:: Python ) -> & str {
319
+ PyArrayDescr :: of :: < T > ( py) . get_type ( ) . name ( ) . unwrap ( )
320
+ }
321
+ pyo3:: Python :: with_gil ( |py| {
322
+ assert_eq ! ( type_name:: <bool >( py) , "bool_" ) ;
323
+ assert_eq ! ( type_name:: <i8 >( py) , "int8" ) ;
324
+ assert_eq ! ( type_name:: <i16 >( py) , "int16" ) ;
325
+ assert_eq ! ( type_name:: <i32 >( py) , "int32" ) ;
326
+ assert_eq ! ( type_name:: <i64 >( py) , "int64" ) ;
327
+ assert_eq ! ( type_name:: <u8 >( py) , "uint8" ) ;
328
+ assert_eq ! ( type_name:: <u16 >( py) , "uint16" ) ;
329
+ assert_eq ! ( type_name:: <u32 >( py) , "uint32" ) ;
330
+ assert_eq ! ( type_name:: <u64 >( py) , "uint64" ) ;
331
+ assert_eq ! ( type_name:: <f32 >( py) , "float32" ) ;
332
+ assert_eq ! ( type_name:: <f64 >( py) , "float64" ) ;
333
+ assert_eq ! ( type_name:: <c32>( py) , "complex64" ) ;
334
+ assert_eq ! ( type_name:: <c64>( py) , "complex128" ) ;
335
+ cfg_if ! {
336
+ if #[ cfg( target_pointer_width = "64" ) ] {
337
+ assert_eq!( type_name:: <usize >( py) , "uint64" ) ;
338
+ } else if #[ cfg( target_pointer_width = "32" ) ] {
339
+ assert_eq!( type_name:: <usize >( py) , "uint32" ) ;
340
+ }
341
+ }
342
+ } )
343
+ }
344
+ }
0 commit comments