diff --git a/rust/tests/end-to-end_test.rs b/rust/tests/end-to-end_test.rs index cf98d75..0081b7d 100644 --- a/rust/tests/end-to-end_test.rs +++ b/rust/tests/end-to-end_test.rs @@ -639,6 +639,37 @@ fn get_all_tests() -> Vec { force_color: String::from("3"), no_color: false, }, + Test { + name: String::from("Gradient with new line"), + args: vec!["test|x".to_string(), "-g".to_string(), "red,green".to_string()], + fixture: concat!("\n\n", + " \x1B[38;2;255;0;0m█\x1B[39m\x1B[38;2;255;0;28m█\x1B[39m\x1B[38;2;255;0;56m█\x1B[39m\x1B[38;2;255;0;84m█\x1B[39m\x1B[38;2;255;0;113m█\x1B[39m\x1B[38;2;255;0;141m█\x1B[39m\x1B[38;2;255;0;170m█\x1B[39m\x1B[38;2;255;0;198m█\x1B[39m\x1B[38;2;255;0;226m╗\x1B[39m\x1B[38;2;255;0;255m \x1B[39m\x1B[38;2;226;0;255m█\x1B[39m\x1B[38;2;198;0;255m█\x1B[39m\x1B[38;2;170;0;255m█\x1B[39m\x1B[38;2;141;0;255m█\x1B[39m\x1B[38;2;113;0;255m█\x1B[39m\x1B[38;2;84;0;255m█\x1B[39m\x1B[38;2;56;0;255m█\x1B[39m\x1B[38;2;28;0;255m╗\x1B[39m\x1B[38;2;0;0;255m \x1B[39m\x1B[38;2;0;28;255m█\x1B[39m\x1B[38;2;0;56;255m█\x1B[39m\x1B[38;2;0;85;255m█\x1B[39m\x1B[38;2;0;113;255m█\x1B[39m\x1B[38;2;0;141;255m█\x1B[39m\x1B[38;2;0;169;255m█\x1B[39m\x1B[38;2;0;198;255m█\x1B[39m\x1B[38;2;0;226;255m╗\x1B[39m\x1B[38;2;0;255;255m \x1B[39m\x1B[38;2;0;255;226m█\x1B[39m\x1B[38;2;0;255;198m█\x1B[39m\x1B[38;2;0;255;169m█\x1B[39m\x1B[38;2;0;255;141m█\x1B[39m\x1B[38;2;0;255;113m█\x1B[39m\x1B[38;2;0;255;85m█\x1B[39m\x1B[38;2;0;255;56m█\x1B[39m\x1B[38;2;0;255;28m█\x1B[39m\x1B[38;2;0;255;0m╗\x1B[39m\n", + " \x1B[38;2;255;0;0m╚\x1B[39m\x1B[38;2;255;0;28m═\x1B[39m\x1B[38;2;255;0;56m═\x1B[39m\x1B[38;2;255;0;84m█\x1B[39m\x1B[38;2;255;0;113m█\x1B[39m\x1B[38;2;255;0;141m╔\x1B[39m\x1B[38;2;255;0;170m═\x1B[39m\x1B[38;2;255;0;198m═\x1B[39m\x1B[38;2;255;0;226m╝\x1B[39m\x1B[38;2;255;0;255m \x1B[39m\x1B[38;2;226;0;255m█\x1B[39m\x1B[38;2;198;0;255m█\x1B[39m\x1B[38;2;170;0;255m╔\x1B[39m\x1B[38;2;141;0;255m═\x1B[39m\x1B[38;2;113;0;255m═\x1B[39m\x1B[38;2;84;0;255m═\x1B[39m\x1B[38;2;56;0;255m═\x1B[39m\x1B[38;2;28;0;255m╝\x1B[39m\x1B[38;2;0;0;255m \x1B[39m\x1B[38;2;0;28;255m█\x1B[39m\x1B[38;2;0;56;255m█\x1B[39m\x1B[38;2;0;85;255m╔\x1B[39m\x1B[38;2;0;113;255m═\x1B[39m\x1B[38;2;0;141;255m═\x1B[39m\x1B[38;2;0;169;255m═\x1B[39m\x1B[38;2;0;198;255m═\x1B[39m\x1B[38;2;0;226;255m╝\x1B[39m\x1B[38;2;0;255;255m \x1B[39m\x1B[38;2;0;255;226m╚\x1B[39m\x1B[38;2;0;255;198m═\x1B[39m\x1B[38;2;0;255;169m═\x1B[39m\x1B[38;2;0;255;141m█\x1B[39m\x1B[38;2;0;255;113m█\x1B[39m\x1B[38;2;0;255;85m╔\x1B[39m\x1B[38;2;0;255;56m═\x1B[39m\x1B[38;2;0;255;28m═\x1B[39m\x1B[38;2;0;255;0m╝\x1B[39m\n", + " \x1B[38;2;255;0;0m \x1B[39m\x1B[38;2;255;0;28m \x1B[39m\x1B[38;2;255;0;56m \x1B[39m\x1B[38;2;255;0;84m█\x1B[39m\x1B[38;2;255;0;113m█\x1B[39m\x1B[38;2;255;0;141m║\x1B[39m\x1B[38;2;255;0;170m \x1B[39m\x1B[38;2;255;0;198m \x1B[39m\x1B[38;2;255;0;226m \x1B[39m\x1B[38;2;255;0;255m \x1B[39m\x1B[38;2;226;0;255m█\x1B[39m\x1B[38;2;198;0;255m█\x1B[39m\x1B[38;2;170;0;255m█\x1B[39m\x1B[38;2;141;0;255m█\x1B[39m\x1B[38;2;113;0;255m█\x1B[39m\x1B[38;2;84;0;255m╗\x1B[39m\x1B[38;2;56;0;255m \x1B[39m\x1B[38;2;28;0;255m \x1B[39m\x1B[38;2;0;0;255m \x1B[39m\x1B[38;2;0;28;255m█\x1B[39m\x1B[38;2;0;56;255m█\x1B[39m\x1B[38;2;0;85;255m█\x1B[39m\x1B[38;2;0;113;255m█\x1B[39m\x1B[38;2;0;141;255m█\x1B[39m\x1B[38;2;0;169;255m█\x1B[39m\x1B[38;2;0;198;255m█\x1B[39m\x1B[38;2;0;226;255m╗\x1B[39m\x1B[38;2;0;255;255m \x1B[39m\x1B[38;2;0;255;226m \x1B[39m\x1B[38;2;0;255;198m \x1B[39m\x1B[38;2;0;255;169m \x1B[39m\x1B[38;2;0;255;141m█\x1B[39m\x1B[38;2;0;255;113m█\x1B[39m\x1B[38;2;0;255;85m║\x1B[39m\x1B[38;2;0;255;56m \x1B[39m\x1B[38;2;0;255;28m \x1B[39m\x1B[38;2;0;255;0m \x1B[39m\n", + " \x1B[38;2;255;0;0m \x1B[39m\x1B[38;2;255;0;28m \x1B[39m\x1B[38;2;255;0;56m \x1B[39m\x1B[38;2;255;0;84m█\x1B[39m\x1B[38;2;255;0;113m█\x1B[39m\x1B[38;2;255;0;141m║\x1B[39m\x1B[38;2;255;0;170m \x1B[39m\x1B[38;2;255;0;198m \x1B[39m\x1B[38;2;255;0;226m \x1B[39m\x1B[38;2;255;0;255m \x1B[39m\x1B[38;2;226;0;255m█\x1B[39m\x1B[38;2;198;0;255m█\x1B[39m\x1B[38;2;170;0;255m╔\x1B[39m\x1B[38;2;141;0;255m═\x1B[39m\x1B[38;2;113;0;255m═\x1B[39m\x1B[38;2;84;0;255m╝\x1B[39m\x1B[38;2;56;0;255m \x1B[39m\x1B[38;2;28;0;255m \x1B[39m\x1B[38;2;0;0;255m \x1B[39m\x1B[38;2;0;28;255m╚\x1B[39m\x1B[38;2;0;56;255m═\x1B[39m\x1B[38;2;0;85;255m═\x1B[39m\x1B[38;2;0;113;255m═\x1B[39m\x1B[38;2;0;141;255m═\x1B[39m\x1B[38;2;0;169;255m█\x1B[39m\x1B[38;2;0;198;255m█\x1B[39m\x1B[38;2;0;226;255m║\x1B[39m\x1B[38;2;0;255;255m \x1B[39m\x1B[38;2;0;255;226m \x1B[39m\x1B[38;2;0;255;198m \x1B[39m\x1B[38;2;0;255;169m \x1B[39m\x1B[38;2;0;255;141m█\x1B[39m\x1B[38;2;0;255;113m█\x1B[39m\x1B[38;2;0;255;85m║\x1B[39m\x1B[38;2;0;255;56m \x1B[39m\x1B[38;2;0;255;28m \x1B[39m\x1B[38;2;0;255;0m \x1B[39m\n", + " \x1B[38;2;255;0;0m \x1B[39m\x1B[38;2;255;0;28m \x1B[39m\x1B[38;2;255;0;56m \x1B[39m\x1B[38;2;255;0;84m█\x1B[39m\x1B[38;2;255;0;113m█\x1B[39m\x1B[38;2;255;0;141m║\x1B[39m\x1B[38;2;255;0;170m \x1B[39m\x1B[38;2;255;0;198m \x1B[39m\x1B[38;2;255;0;226m \x1B[39m\x1B[38;2;255;0;255m \x1B[39m\x1B[38;2;226;0;255m█\x1B[39m\x1B[38;2;198;0;255m█\x1B[39m\x1B[38;2;170;0;255m█\x1B[39m\x1B[38;2;141;0;255m█\x1B[39m\x1B[38;2;113;0;255m█\x1B[39m\x1B[38;2;84;0;255m█\x1B[39m\x1B[38;2;56;0;255m█\x1B[39m\x1B[38;2;28;0;255m╗\x1B[39m\x1B[38;2;0;0;255m \x1B[39m\x1B[38;2;0;28;255m█\x1B[39m\x1B[38;2;0;56;255m█\x1B[39m\x1B[38;2;0;85;255m█\x1B[39m\x1B[38;2;0;113;255m█\x1B[39m\x1B[38;2;0;141;255m█\x1B[39m\x1B[38;2;0;169;255m█\x1B[39m\x1B[38;2;0;198;255m█\x1B[39m\x1B[38;2;0;226;255m║\x1B[39m\x1B[38;2;0;255;255m \x1B[39m\x1B[38;2;0;255;226m \x1B[39m\x1B[38;2;0;255;198m \x1B[39m\x1B[38;2;0;255;169m \x1B[39m\x1B[38;2;0;255;141m█\x1B[39m\x1B[38;2;0;255;113m█\x1B[39m\x1B[38;2;0;255;85m║\x1B[39m\x1B[38;2;0;255;56m \x1B[39m\x1B[38;2;0;255;28m \x1B[39m\x1B[38;2;0;255;0m \x1B[39m\n", + " \x1B[38;2;255;0;0m \x1B[39m\x1B[38;2;255;0;28m \x1B[39m\x1B[38;2;255;0;56m \x1B[39m\x1B[38;2;255;0;84m╚\x1B[39m\x1B[38;2;255;0;113m═\x1B[39m\x1B[38;2;255;0;141m╝\x1B[39m\x1B[38;2;255;0;170m \x1B[39m\x1B[38;2;255;0;198m \x1B[39m\x1B[38;2;255;0;226m \x1B[39m\x1B[38;2;255;0;255m \x1B[39m\x1B[38;2;226;0;255m╚\x1B[39m\x1B[38;2;198;0;255m═\x1B[39m\x1B[38;2;170;0;255m═\x1B[39m\x1B[38;2;141;0;255m═\x1B[39m\x1B[38;2;113;0;255m═\x1B[39m\x1B[38;2;84;0;255m═\x1B[39m\x1B[38;2;56;0;255m═\x1B[39m\x1B[38;2;28;0;255m╝\x1B[39m\x1B[38;2;0;0;255m \x1B[39m\x1B[38;2;0;28;255m╚\x1B[39m\x1B[38;2;0;56;255m═\x1B[39m\x1B[38;2;0;85;255m═\x1B[39m\x1B[38;2;0;113;255m═\x1B[39m\x1B[38;2;0;141;255m═\x1B[39m\x1B[38;2;0;169;255m═\x1B[39m\x1B[38;2;0;198;255m═\x1B[39m\x1B[38;2;0;226;255m╝\x1B[39m\x1B[38;2;0;255;255m \x1B[39m\x1B[38;2;0;255;226m \x1B[39m\x1B[38;2;0;255;198m \x1B[39m\x1B[38;2;0;255;169m \x1B[39m\x1B[38;2;0;255;141m╚\x1B[39m\x1B[38;2;0;255;113m═\x1B[39m\x1B[38;2;0;255;85m╝\x1B[39m\x1B[38;2;0;255;56m \x1B[39m\x1B[38;2;0;255;28m \x1B[39m\x1B[38;2;0;255;0m \x1B[39m\n", + "\n", + " \x1B[38;2;255;0;0m█\x1B[39m\x1B[38;2;255;0;28m█\x1B[39m\x1B[38;2;255;0;56m╗\x1B[39m\x1B[38;2;255;0;84m \x1B[39m\x1B[38;2;255;0;113m \x1B[39m\x1B[38;2;255;0;141m█\x1B[39m\x1B[38;2;255;0;170m█\x1B[39m\x1B[38;2;255;0;198m╗\x1B[39m\n", + " \x1B[38;2;255;0;0m╚\x1B[39m\x1B[38;2;255;0;28m█\x1B[39m\x1B[38;2;255;0;56m█\x1B[39m\x1B[38;2;255;0;84m╗\x1B[39m\x1B[38;2;255;0;113m█\x1B[39m\x1B[38;2;255;0;141m█\x1B[39m\x1B[38;2;255;0;170m╔\x1B[39m\x1B[38;2;255;0;198m╝\x1B[39m\n", + " \x1B[38;2;255;0;0m \x1B[39m\x1B[38;2;255;0;28m╚\x1B[39m\x1B[38;2;255;0;56m█\x1B[39m\x1B[38;2;255;0;84m█\x1B[39m\x1B[38;2;255;0;113m█\x1B[39m\x1B[38;2;255;0;141m╔\x1B[39m\x1B[38;2;255;0;170m╝\x1B[39m\x1B[38;2;255;0;198m \x1B[39m\n", + " \x1B[38;2;255;0;0m \x1B[39m\x1B[38;2;255;0;28m█\x1B[39m\x1B[38;2;255;0;56m█\x1B[39m\x1B[38;2;255;0;84m╔\x1B[39m\x1B[38;2;255;0;113m█\x1B[39m\x1B[38;2;255;0;141m█\x1B[39m\x1B[38;2;255;0;170m╗\x1B[39m\x1B[38;2;255;0;198m \x1B[39m\n", + " \x1B[38;2;255;0;0m█\x1B[39m\x1B[38;2;255;0;28m█\x1B[39m\x1B[38;2;255;0;56m╔\x1B[39m\x1B[38;2;255;0;84m╝\x1B[39m\x1B[38;2;255;0;113m \x1B[39m\x1B[38;2;255;0;141m█\x1B[39m\x1B[38;2;255;0;170m█\x1B[39m\x1B[38;2;255;0;198m╗\x1B[39m\n", + " \x1B[38;2;255;0;0m╚\x1B[39m\x1B[38;2;255;0;28m═\x1B[39m\x1B[38;2;255;0;56m╝\x1B[39m\x1B[38;2;255;0;84m \x1B[39m\x1B[38;2;255;0;113m \x1B[39m\x1B[38;2;255;0;141m╚\x1B[39m\x1B[38;2;255;0;170m═\x1B[39m\x1B[38;2;255;0;198m╝\x1B[39m\n", + "\n\n").to_string(), + force_color: String::from("3"), + no_color: false, + }, + Test { + name: String::from("Gradient with new line and console font"), + args: vec!["test|x".to_string(), "-g".to_string(), "red,green".to_string(), "-f".to_string(), "console".to_string()], + fixture: concat!("\n\n", + "\x1B[38;2;255;0;0mt\x1B[39m\x1B[38;2;170;0;255me\x1B[39m\x1B[38;2;0;169;255ms\x1B[39m\x1B[38;2;0;255;0mt\x1B[39m\n", + "\x1B[38;2;255;0;0mx\x1B[39m\n", + "\n\n").to_string(), + force_color: String::from("3"), + no_color: false, + }, Test { name: String::from("Gradient independent"), args: vec!["test|x".to_string(), "-g".to_string(), "red,green".to_string(), "-i".to_string()],