diff --git a/tr/test.rs b/tr/test.rs index b6fc1456d..e62e79ed9 100644 --- a/tr/test.rs +++ b/tr/test.rs @@ -1,7 +1,7 @@ use std::io::process::Command; -fn run(input: &str, set1: &str, set2: &str) -> Vec { - let mut process = Command::new("build/tr").arg(set1).arg(set2).spawn().unwrap(); +fn run(input: &str, args: &[&'static str]) -> Vec { + let mut process = Command::new("build/tr").args(args).spawn().unwrap(); process.stdin.take_unwrap().write_str(input).unwrap(); @@ -14,20 +14,32 @@ fn run(input: &str, set1: &str, set2: &str) -> Vec { #[test] fn test_toupper() { - let out = run("!abcd!", "a-z", "A-Z"); + let out = run("!abcd!", ["a-z", "A-Z"]); assert_eq!(out.as_slice(), bytes!("!ABCD!")); } #[test] fn test_small_set2() { - let out = run("@0123456789", "0-9", "X"); + let out = run("@0123456789", ["0-9", "X"]); assert_eq!(out.as_slice(), bytes!("@XXXXXXXXXX")); } #[test] fn test_unicode() { - let out = run("(,°□°), ┬─┬", ", ┬─┬", "╯︵┻━┻"); + let out = run("(,°□°), ┬─┬", [", ┬─┬", "╯︵┻━┻"]); assert_eq!(out.as_slice(), bytes!("(╯°□°)╯︵┻━┻")); } +#[test] +fn test_delete() { + let out = run("aBcD", ["-d", "a-z"]); + assert_eq!(out.as_slice(), bytes!("BD")); +} + +#[test] +fn test_delete_complement() { + let out = run("aBcD", ["-d", "-c", "a-z"]); + assert_eq!(out.as_slice(), bytes!("ac")); +} +