use indoc::formatdoc; #[test] fn carriage_return() { // Every line in the string ends with \r\n let indoc = formatdoc! {" {} \\{} {}", 'a', 'b', 'c' }; let expected = "a\n\n \\b\nc"; assert_eq!(indoc, expected); } #[test] fn empty_string() { let indoc = formatdoc! {""}; let expected = ""; assert_eq!(indoc, expected); } #[test] fn joined_first_line() { let indoc = formatdoc! {"\ {}", 'a' }; let expected = "a"; assert_eq!(indoc, expected); } #[test] fn joined_lines() { let indoc = formatdoc! {" {}\ {} {}\ {} {}", 'a', 'b', 'c', 'd', 'e' }; let expected = "ab\ncd\ne"; assert_eq!(indoc, expected); } #[test] fn no_leading_newline() { let indoc = formatdoc! {"{} {} {}", 'a', 'b', 'c'}; let expected = "a\nb\nc"; assert_eq!(indoc, expected); } #[test] fn one_line() { let indoc = formatdoc! {"a"}; let expected = "a"; assert_eq!(indoc, expected); } #[test] fn raw_string() { let indoc = formatdoc! {r#" {:?} \\{} {}"#, "a", 'b', 'c' }; let expected = "\"a\"\n\n \\\\b\nc"; assert_eq!(indoc, expected); } #[test] fn string() { let indoc = formatdoc! {" {} \\{} {}", 'a', 'b', 'c' }; let expected = "a\n\n \\b\nc"; assert_eq!(indoc, expected); } #[test] fn string_trailing_newline() { let indoc = formatdoc! {" {} \\{} {} ", 'a', 'b', 'c' }; let expected = "a\n\n \\b\nc\n"; assert_eq!(indoc, expected); } #[test] fn trailing_whitespace() { let indoc = formatdoc! {" {} {below} {} {below} {} {below} end", 2, 0, -2, below = "below" }; let expected = "2 below\n \n0 below\n\n-2 below\n\nend"; assert_eq!(indoc, expected); }