test_line_parsing.ml (4682B)
1 open Learning 2 3 let test_line_parsing () = 4 assert (Parser.get_line_type "" true = Preformatted); 5 assert (Parser.get_line_type "" false = Normal); 6 7 (* Line-based type tests.*) 8 (* Only ``` is a format line, no additional characters.*) 9 assert (Parser.is_format_line "```"); 10 assert (not (Parser.is_format_line "``` ")); 11 assert (not (Parser.is_format_line "```a")); 12 assert (not (Parser.is_format_line "```0")); 13 14 (* Preformatted always overrides all line types *) 15 assert (Parser.get_line_type "Test" true = Preformatted); 16 assert (Parser.get_line_type "# Test" true = Preformatted); 17 assert (Parser.get_line_type "## Test" true = Preformatted); 18 assert (Parser.get_line_type "### Test" true = Preformatted); 19 assert (Parser.get_line_type "=>e Test" true = Preformatted); 20 assert (Parser.get_line_type "```" true = Preformatted); 21 assert (Parser.get_line_type "?? Test" true = Preformatted); 22 assert (Parser.get_line_type "> Test" true = Preformatted); 23 assert (Parser.get_line_type "=> Test" true = Preformatted); 24 assert (Parser.get_line_type "* Test" true = Preformatted); 25 26 (* Not preformatted, basic type assertions. *) 27 assert (Parser.get_line_type "Test" false = Normal); 28 assert (Parser.get_line_type "# Test" false = HeaderL1); 29 assert (Parser.get_line_type "## Test" false = HeaderL2); 30 assert (Parser.get_line_type "### Test" false = HeaderL3); 31 assert (Parser.get_line_type "=>e Test" false = Embedded); 32 assert (Parser.get_line_type "?? Test" false = Hidden); 33 assert (Parser.get_line_type "> Test" false = Quote); 34 assert (Parser.get_line_type "=> Test" false = Link); 35 assert (Parser.get_line_type "* Test" false = ListItem); 36 37 (* Special lines missing expected spacing *) 38 assert (Parser.get_line_type "Test" false = Normal); 39 assert (Parser.get_line_type "#Test" false = Normal); 40 assert (Parser.get_line_type "##Test" false = Normal); 41 assert (Parser.get_line_type "###Test" false = Normal); 42 assert (Parser.get_line_type "=>eTest" false = Normal); 43 assert (Parser.get_line_type "??Test" false = Normal); 44 assert (Parser.get_line_type ">Test" false = Normal); 45 assert (Parser.get_line_type "=>Test" false = Normal); 46 assert (Parser.get_line_type "*Test" false = Normal); 47 48 (* No weird error considerations / oboes. *) 49 assert (Parser.get_line_type "" false = Normal); 50 assert (Parser.get_line_type "#" false = Normal); 51 assert (Parser.get_line_type "##" false = Normal); 52 assert (Parser.get_line_type "###" false = Normal); 53 assert (Parser.get_line_type "=>e" false = Normal); 54 assert (Parser.get_line_type "??" false = Normal); 55 assert (Parser.get_line_type ">" false = Normal); 56 assert (Parser.get_line_type "=>" false = Normal); 57 assert (Parser.get_line_type "*" false = Normal); 58 assert (Parser.get_line_type "# " false = HeaderL1); 59 assert (Parser.get_line_type "## " false = HeaderL2); 60 assert (Parser.get_line_type "### " false = HeaderL3); 61 assert (Parser.get_line_type "=>e " false = Embedded); 62 assert (Parser.get_line_type "?? " false = Hidden); 63 assert (Parser.get_line_type "> " false = Quote); 64 assert (Parser.get_line_type "=> " false = Link); 65 assert (Parser.get_line_type "* " false = ListItem); 66 67 (*E2E Parsing of individual lines. *) 68 (* Character stripping expectations. *) 69 assert ((Parser.parse_simple_line "Test" false).content = "Test"); 70 assert ((Parser.parse_simple_line "# Test" false).content = "Test"); 71 assert ((Parser.parse_simple_line "## Test" false).content = "Test"); 72 assert ((Parser.parse_simple_line "### Test" false).content = "Test"); 73 assert ((Parser.parse_simple_line "=>e Test" false).content = "Test"); 74 assert ((Parser.parse_simple_line "Test" true).content = "Test"); 75 assert ((Parser.parse_simple_line "?? Test" false).content = "Test"); 76 assert ((Parser.parse_simple_line "> Test" false).content = "Test"); 77 assert ((Parser.parse_simple_line "=> Test" false).content = "Test"); 78 assert ((Parser.parse_simple_line "* Test" false).content = "Test"); 79 80 (* Character stripping doesn't break on empty line content. *) 81 assert ((Parser.parse_simple_line "" false).content = ""); 82 assert ((Parser.parse_simple_line "# " false).content = ""); 83 assert ((Parser.parse_simple_line "## " false).content = ""); 84 assert ((Parser.parse_simple_line "### " false).content = ""); 85 assert ((Parser.parse_simple_line "=>e " false).content = ""); 86 assert ((Parser.parse_simple_line "" true).content = ""); 87 assert ((Parser.parse_simple_line "?? " false).content = ""); 88 assert ((Parser.parse_simple_line "> " false).content = ""); 89 assert ((Parser.parse_simple_line "=> " false).content = ""); 90 assert ((Parser.parse_simple_line "* " false).content = "")