simple-learning

Simple learning web program
git clone git://git.laack.co/simple-learning.git
Log | Files | Refs | README | LICENSE

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 = "")