# 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'])