library_tests/
test_numeric_array_conversions.rs1use wolfram_library_link::{
2 self as wll, NumericArray, NumericArrayConvertMethod as Method,
3};
4
5fn from_slice<T: wll::NumericArrayType>(slice: &[T]) -> NumericArray<T> {
6 NumericArray::from_slice(slice)
7}
8
9#[wll::export]
10fn test_na_conversions() {
11 assert!(from_slice(&[i16::MAX])
16 .convert_to::<i8>(Method::Check, 1.0)
17 .is_err());
18
19 assert!(from_slice(&[i16::MAX])
20 .convert_to::<i8>(Method::Cast, 1.0)
21 .is_err());
22
23 assert!(from_slice(&[i16::MAX])
24 .convert_to::<i8>(Method::Coerce, 1.0)
25 .is_err());
26
27 assert!(from_slice(&[i16::MAX])
28 .convert_to::<i8>(Method::Round, 1.0)
29 .is_err());
30
31 assert_eq!(
32 from_slice(&[i16::MAX])
33 .convert_to::<i8>(Method::Scale, 1.0)
34 .unwrap()
35 .as_slice(),
36 [i8::MAX]
37 );
38}