use simple_color::{Color, ColorParsingError};
#[test]
fn lengths() {
assert_eq!("8".parse(), Ok(Color::gray(0x88)));
assert_eq!("80".parse(), Ok(Color::gray(0x80)));
assert_eq!("abc".parse(), Ok(Color::rgb(0xAA, 0xBB, 0xCC)));
assert_eq!("1234".parse(), Ok(Color::rgba(0x11, 0x22, 0x33, 0x44)));
assert_eq!("FF0000".parse(), Ok(Color::RED));
assert_eq!("ff800080".parse(), Ok(Color::rgba(0xFF, 0x80, 0, 0x80)));
}
#[test]
fn invalid_char() {
assert_eq!(
"80FG00".parse::<Color>(),
Err(ColorParsingError::InvalidChar('G'))
);
}
#[test]
fn invalid_length() {
assert_eq!(
"FF80000".parse::<Color>(),
Err(ColorParsingError::InvalidLength(7))
);
}
#[test]
fn multibyte_is_rejected_not_ub() {
assert!("é".parse::<Color>().is_err());
assert!("§§§".parse::<Color>().is_err());
}