#[cfg(test)] use crate::tcl::{commands, comments, words}; #[test] fn test_commands_working() { let testcase_1: &str = "cmd_a;cmd_b;cmd_c"; let testcase_2: &str = "cmd_a\ncmd_b\ncmd_c"; let verify: Vec = vec![ String::from("cmd_a"), String::from("cmd_b"), String::from("cmd_c"), ]; assert_eq!(commands(testcase_1), verify); assert_eq!(commands(testcase_2), verify); } #[test] fn test_commands_quotes() { let testcase_1: &str = "cmd_a\n\"cmd_b\"\ncmd_c"; let verify_1: Vec = vec![ String::from("cmd_a"), String::from("\"cmd_b\""), String::from("cmd_c"), ]; let testcase_2: &str = "cmd_a;\"cmd_b;cmd_c\""; let verify_2: Vec = vec![String::from("cmd_a"), String::from("\"cmd_b;cmd_c\"")]; let testcase_3: &str = "cmd_a;\"cmd_b\ncmd_c\""; let verify_3: Vec = vec![String::from("cmd_a"), String::from("\"cmd_b\ncmd_c\"")]; let case_1 = commands(testcase_1); let case_2 = commands(testcase_2); let case_3 = commands(testcase_3); assert_eq!(case_1, verify_1); assert_eq!(case_2, verify_2); assert_eq!(case_3, verify_3); } #[test] fn test_words_simple() { let testcase: &str = "routine argument 1234 0x123 abcd"; let verify: Vec = vec![ String::from("routine"), String::from("argument"), String::from("1234"), String::from("0x123"), String::from("abcd"), ]; let case: Vec = words(testcase); assert_eq!(case, verify); } #[test] fn test_words_quoted() { let testcase: &str = "routine \"argument with spaces\" 1234 0x543"; let verify: Vec = vec![ String::from("routine"), String::from("\"argument with spaces\""), String::from("1234"), String::from("0x543"), ]; let case: Vec = words(testcase); assert_eq!(case, verify); } #[test] fn test_remove_comments() { let testcase_1: &str = "test#noreplacement"; let testcase_2: &str = ";#replace_this\n"; let verify_1: &str = "test#noreplacement"; let verify_2: &str = ";"; let case_1: String = comments(testcase_1); let case_2: String = comments(testcase_2); assert_eq!(verify_1, case_1.as_str()); assert_eq!(verify_2, case_2.as_str()); }