| # Empty line | |
| assert_eq(''.splitlines(), []) | |
| assert_eq('\n'.splitlines(), ['']) | |
| # Starts with line break | |
| assert_eq('\ntest'.splitlines(), ['', 'test']) | |
| # Ends with line break | |
| assert_eq('test\n'.splitlines(), ['test']) | |
| # Different line breaks | |
| assert_eq('this\nis\na\ntest'.splitlines(), ['this', 'is', 'a', 'test']) | |
| # Only line breaks | |
| assert_eq('\n\n\n'.splitlines(), ['', '', '']) | |
| assert_eq('\r\r\r'.splitlines(), ['', '', '']) | |
| assert_eq('\n\r\n\r'.splitlines(), ['', '', '']) | |
| assert_eq('\r\n\r\n\r\n'.splitlines(), ['', '', '']) | |
| # Escaped sequences | |
| assert_eq('\n\\n\\\n'.splitlines(), ['', '\\n\\']) | |
| # KeepEnds | |
| assert_eq(''.splitlines(True), []) | |
| assert_eq('\n'.splitlines(True), ['\n']) | |
| assert_eq('this\nis\r\na\rtest'.splitlines(True), ['this\n', 'is\r\n', 'a\r', 'test']) | |
| assert_eq('\ntest'.splitlines(True), ['\n', 'test']) | |
| assert_eq('test\n'.splitlines(True), ['test\n']) | |
| assert_eq('\n\\n\\\n'.splitlines(True), ['\n', '\\n\\\n']) |