use easy_sgr::Seq; #[test] fn seq() { assert_eq!("\x1b[", Seq::Esc.to_string()); assert_eq!("m", Seq::End.to_string()); } #[cfg(not(feature = "partial"))] mod normal { use easy_sgr::{Color::*, Style::*}; #[test] fn styles() { for (correct, style) in [ ("\x1b[0m", Reset), ("\x1b[1m", Bold), ("\x1b[2m", Dim), ("\x1b[3m", Italic), ("\x1b[4m", Underline), ("\x1b[5m", Blinking), ("\x1b[7m", Inverse), ("\x1b[8m", Hidden), ("\x1b[9m", Strikethrough), ("\x1b[22m", NotBold), ("\x1b[22m", NotDim), ("\x1b[23m", NotItalic), ("\x1b[24m", NotUnderline), ("\x1b[25m", NotBlinking), ("\x1b[27m", NotInverse), ("\x1b[28m", NotHidden), ("\x1b[29m", NotStrikethrough), ] { assert_eq!(correct, format!("{style}")) } } #[test] fn standard_colors() { for (correct, color) in [ ("\x1b[30m", BlackFg), ("\x1b[31m", RedFg), ("\x1b[32m", GreenFg), ("\x1b[33m", YellowFg), ("\x1b[34m", BlueFg), ("\x1b[35m", MagentaFg), ("\x1b[36m", CyanFg), ("\x1b[37m", WhiteFg), ("\x1b[39m", DefaultFg), ("\x1b[40m", BlackBg), ("\x1b[41m", RedBg), ("\x1b[42m", GreenBg), ("\x1b[43m", YellowBg), ("\x1b[44m", BlueBg), ("\x1b[45m", MagentaBg), ("\x1b[46m", CyanBg), ("\x1b[47m", WhiteBg), ("\x1b[49m", DefaultBg), ] { assert_eq!(correct, format!("{color}")) } } #[test] fn byte_color() { for i in (0u8..255).step_by(17) { assert_eq!(format!("\x1b[38;5;{i}m"), format!("{}", ByteFg(i))); assert_eq!(format!("\x1b[48;5;{i}m"), format!("{}", ByteBg(i))); } } #[test] fn rgb_color() { for i in (0u8..255).step_by(17) { for j in (0u8..255).step_by(17) { for k in (0u8..255).step_by(17) { assert_eq!( format!("\x1b[38;2;{i};{j};{k}m"), format!("{}", RgbFg(i, j, k)) ); assert_eq!( format!("\x1b[48;2;{i};{j};{k}m"), format!("{}", RgbBg(i, j, k)) ); } } } } } #[cfg(feature = "from-str")] mod from_str { use easy_sgr::{Color::*, Seq::*, Style::*}; #[test] fn seq() { assert_eq!(Ok(End), "End".parse()); assert_eq!(Ok(Esc), "Esc".parse()); } #[test] fn styles() { for (src, style) in [ ("Reset", Reset), ("Bold", Bold), ("Dim", Dim), ("Italic", Italic), ("Underline", Underline), ("Blinking", Blinking), ("Inverse", Inverse), ("Hidden", Hidden), ("Strikethrough", Strikethrough), ("NotBold", NotBold), ("NotDim", NotDim), ("NotItalic", NotItalic), ("NotUnderline", NotUnderline), ("NotBlinking", NotBlinking), ("NotInverse", NotInverse), ("NotHidden", NotHidden), ("NotStrikethrough", NotStrikethrough), ] { assert_eq!(Ok(style), src.parse()) } } #[test] fn standard_colors() { for (src, color) in [ ("BlackFg", BlackFg), ("RedFg", RedFg), ("GreenFg", GreenFg), ("YellowFg", YellowFg), ("BlueFg", BlueFg), ("MagentaFg", MagentaFg), ("CyanFg", CyanFg), ("WhiteFg", WhiteFg), ("DefaultFg", DefaultFg), ("BlackBg", BlackBg), ("RedBg", RedBg), ("GreenBg", GreenBg), ("YellowBg", YellowBg), ("BlueBg", BlueBg), ("MagentaBg", MagentaBg), ("CyanBg", CyanBg), ("WhiteBg", WhiteBg), ("DefaultBg", DefaultBg), ] { assert_eq!(Ok(color), src.parse()) } } #[test] fn byte_color() { for i in (0u8..255).step_by(17) { assert_eq!(Ok(ByteFg(i)), format!("ByteFg({i})").parse()); assert_eq!(Ok(ByteBg(i)), format!("ByteBg({i})").parse()); } } #[test] fn rgb_color() { for i in (0u8..255).step_by(17) { for j in (0u8..255).step_by(17) { for k in (0u8..255).step_by(17) { assert_eq!(Ok(RgbFg(i, j, k)), format!("RgbFg({i},{j},{k})").parse()); assert_eq!(Ok(RgbBg(i, j, k)), format!("RgbBg({i},{j},{k})").parse()); } } } } } #[cfg(feature = "partial")] mod partial { use easy_sgr::{Color::*, Style::*}; #[test] fn styles() { for (correct, style) in [ ("0", Reset), ("1", Bold), ("2", Dim), ("3", Italic), ("4", Underline), ("5", Blinking), ("7", Inverse), ("8", Hidden), ("9", Strikethrough), ("22", NotBold), ("22", NotDim), ("23", NotItalic), ("24", NotUnderline), ("25", NotBlinking), ("27", NotInverse), ("28", NotHidden), ("29", NotStrikethrough), ] { assert_eq!(correct, format!("{style}")) } } #[test] fn standard_colors() { for (correct, color) in [ ("30", BlackFg), ("31", RedFg), ("32", GreenFg), ("33", YellowFg), ("34", BlueFg), ("35", MagentaFg), ("36", CyanFg), ("37", WhiteFg), ("39", DefaultFg), ("40", BlackBg), ("41", RedBg), ("42", GreenBg), ("43", YellowBg), ("44", BlueBg), ("45", MagentaBg), ("46", CyanBg), ("47", WhiteBg), ("49", DefaultBg), ] { assert_eq!(correct, format!("{color}")) } } #[test] fn byte_color() { for i in (0u8..255).step_by(17) { assert_eq!(format!("38;5;{i}"), format!("{}", ByteFg(i))); assert_eq!(format!("48;5;{i}"), format!("{}", ByteBg(i))); } } #[test] fn rgb_color() { for i in (0u8..255).step_by(17) { for j in (0u8..255).step_by(17) { for k in (0u8..255).step_by(17) { assert_eq!(format!("38;2;{i};{j};{k}"), format!("{}", RgbFg(i, j, k))); assert_eq!(format!("48;2;{i};{j};{k}"), format!("{}", RgbBg(i, j, k))); } } } } }