From fd2ea3ff0f49ab3a4159543b8255f5ce15cbc988 Mon Sep 17 00:00:00 2001 From: Mahmoud Al-Qudsi Date: Tue, 7 May 2024 13:00:11 -0500 Subject: [PATCH] Add more tests for color::try_parse_rgb() --- src/color.rs | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/color.rs b/src/color.rs index a0454713d..d9f1e6f69 100644 --- a/src/color.rs +++ b/src/color.rs @@ -467,4 +467,56 @@ fn test_term16_color_for_rgb() { let _ = color.to_name_index(); } } + + #[test] + fn parse_short_hex_with_hash() { + assert_eq!( + RgbColor::try_parse_rgb(L!("#F3A")), + Some(RgbColor::from_rgb(0xFF, 0x33, 0xAA)) + ); + } + + #[test] + fn parse_long_hex_with_hash() { + assert_eq!( + RgbColor::try_parse_rgb(L!("#F3A035")), + Some(RgbColor::from_rgb(0xF3, 0xA0, 0x35)) + ); + } + + #[test] + fn parse_short_hex_without_hash() { + assert_eq!( + RgbColor::try_parse_rgb(L!("F3A")), + Some(RgbColor::from_rgb(0xFF, 0x33, 0xAA)) + ); + } + + #[test] + fn parse_long_hex_without_hash() { + assert_eq!( + RgbColor::try_parse_rgb(L!("F3A035")), + Some(RgbColor::from_rgb(0xF3, 0xA0, 0x35)) + ); + } + + #[test] + fn invalid_hex_length() { + assert_eq!(RgbColor::try_parse_rgb(L!("#F3A03")), None); + assert_eq!(RgbColor::try_parse_rgb(L!("F3A0")), None); + } + + #[test] + fn invalid_hex_character() { + assert_eq!(RgbColor::try_parse_rgb(L!("#GFA")), None); + assert_eq!(RgbColor::try_parse_rgb(L!("F3G035")), None); + } + + #[test] + fn invalid_hash_combinations() { + assert_eq!(RgbColor::try_parse_rgb(L!("##F3A")), None); + assert_eq!(RgbColor::try_parse_rgb(L!("###F3A035")), None); + assert_eq!(RgbColor::try_parse_rgb(L!("F3A#")), None); + assert_eq!(RgbColor::try_parse_rgb(L!("#F#3A")), None); + } }