Skip to content

Commit a2ba3fb

Browse files
committed
Add tests for dtype names (currently failing)
1 parent 2067f83 commit a2ba3fb

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

src/dtype.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,3 +306,39 @@ unsafe impl Element for PyObject {
306306
PyArrayDescr::object(py)
307307
}
308308
}
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

Comments
 (0)