Actual string.
Expected string.
File name to report in the error message.
Line number to report in the error message.
1 import std.exception : assertNotThrown, assertThrown; 2 import core.exception : AssertError; 3 4 { 5 enum actual = 6 "abc 7 def 8 ghi 9 jkl 10 mno 11 pqr"; 12 13 enum expected = 14 "abc 15 def 16 ghi 17 jkl 18 mnO 19 pqr"; 20 21 assertThrown!AssertError(actual.assertMultilineEquals(expected)); 22 23 /* 24 core.exception.AssertError@source/lu/assert_.d(123): 25 Line mismatch at source/lu/assert_.d:147, block 5:3; expected 'O'(79) was 'o'(111) 26 expected:"mnO" 27 actual:"mno" 28 ^ 29 */ 30 } 31 { 32 enum actual = 33 "lorem ipsum 34 sit amet 35 consectetur 36 adipiscing"; 37 38 enum expected = 39 "lorem ipsum 40 sit amet 41 consectetur"; 42 43 assertThrown!AssertError(actual.assertMultilineEquals(expected)); 44 45 /* 46 core.exception.AssertError@source/lu/assert_.d(118): 47 Line mismatch at source/lu/assert_.d:169, block 4:1; expected EOL was 'a'(97) 48 expected:"" 49 actual:"adipiscing" 50 ^ 51 */ 52 } 53 { 54 enum actual = 55 "i thought what I'd do was 56 I'd pretend 57 I was one of those deaf-mutes"; 58 59 enum expected = actual; 60 assertNotThrown!AssertError(actual.assertMultilineEquals(expected)); 61 }
Asserts that two multiple-line strings are equal, with a more detailed error message than the yes/no of the built-in assert().