use utf8proc::ErrorKind;
use utf8proc::transform::TransformOptions;
use utf8proc::transform::advanced::{MAX_DECOMPOSE_CHAR_LENGTH, MaybeMarkerCodepoint, TransformBufferError};
use utf8proc::transform::buffer::{MaybeUninitSlice, MaybeUninitSliceExt};
#[test]
fn no_errors() {
let mut buffer = [MaybeMarkerCodepoint::from(0 as char); MAX_DECOMPOSE_CHAR_LENGTH];
for c in char::MIN..=char::MAX {
match utf8proc::transform::advanced::decompose_char(
c,
MaybeUninitSlice::from_init_slice_mut(&mut buffer),
&TransformOptions::default(),
None,
) {
Ok((init, _)) => {
assert!(init.len() <= MAX_DECOMPOSE_CHAR_LENGTH);
}
Err(TransformBufferError::InsufficientSpace(cause)) => panic!("{cause:?}"),
Err(TransformBufferError::Other(cause)) => {
assert!(matches!(cause.kind(), ErrorKind::NotAssigned), "{cause:?}",);
}
}
}
}