pub const TEST_CASES: &[(&str, &[&str])] = &[
(
"basic",
&[
"",
"\t",
"\t\n",
"\t alpha",
"\talpha",
"\n",
"\n\t",
"\n\n\nalpha",
"\n\nalpha",
"\n\nalpha\n\n",
"\n \nalpha",
"\nalpha",
"\nalpha\n",
" ",
" \n\nalpha",
" \nalpha",
" ",
"!!",
"alpha",
"alpha\t",
"alpha\n",
"alpha\n\t",
"alpha\n\n",
"alpha\n\n\n",
"alpha\n\n ",
"alpha\n ",
"alpha\n \n",
"alpha\nbeta",
"alpha ",
"alpha \n",
],
),
(
"bold italic",
&[
"'",
"''",
"'''",
"''''",
"'''''",
"''''''",
"'''''''",
"''''''''",
"'''alpha",
"'''alpha''",
"'''alpha'''",
"''alpha",
"''alpha''",
"''alpha'''",
"alpha''",
"alpha'''",
"alpha'''beta",
"alpha'''beta'''gamma",
"alpha'''beta''gamma",
"alpha''beta",
"alpha''beta'''gamma",
"alpha''beta''gamma",
],
),
(
"character entity",
&[
"≪",
"Ö",
"<",
"<ö",
"<",
"< alpha",
"<ö",
"<alpha",
"ö",
"alpha <",
"alpha < beta",
"alpha<",
"alpha<beta",
],
),
(
"comment",
&[
"<!--",
"<!---->",
"<!---->beta",
"<!--->beta",
"<!--<!--alpha-->-->beta",
"<!--alpha-->",
"<!--alpha--> beta",
"<!--alpha--><!--beta",
"<!--alpha--><!--beta-->",
"<!--alpha-->beta",
"<!-<!--alpha-->beta",
"alpha <!--beta",
"alpha<!--beta",
],
),
(
"external link",
&[
"[//alpha",
"[//alpha beta\ngamma]",
"[//alpha beta]",
"[//alpha]",
"[//alpha] beta",
"[//alpha]beta",
"[HTTP://alpha]",
"[Http://alpha]",
"[alpha://beta]",
"[hTtP://alpha]",
"[http://alpha]",
"[http:/alpha]",
"[http:alpha]",
"[https://alpha]",
"[sip:alpha]",
"alpha [//beta]",
"alpha [//beta] gamma",
"alpha[//beta]",
"alpha[//beta]gamma",
],
),
(
"heading",
&[
"=",
"= =",
"= alpha =",
"=''=",
"==",
"== ''=",
"== alpha''=",
"==''=",
"===",
"====",
"=====",
"======",
"========alpha========",
"=======alpha======",
"=======alpha=======",
"======alpha======",
"=====alpha=====",
"====alpha====",
"===alpha===",
"==alpha''=",
"==alpha=",
"==alpha==",
"=alpha",
"=alpha\nbeta=",
"=alpha=",
"=alpha=\n\n\nbeta",
"=alpha=\n\n=beta=",
"=alpha=\n\nbeta",
"=alpha=\n=beta=",
"=alpha=\nbeta",
"=alpha= \nbeta",
"=alpha==",
"alpha\t\n=beta=",
"alpha\n\n=beta=",
"alpha\n\n=beta=\n\ngamma",
"alpha\n=beta=",
"alpha\n=beta=\ngamma",
"alpha \n=beta=",
],
),
(
"horizontal divider",
&[
"----",
"----\t\nalpha",
"----\n\n\n----",
"----\n\n\nalpha",
"----\n\n----",
"----\n\nalpha",
"----\n----",
"----\nalpha",
"---- \nalpha",
"-----",
"------",
"----alpha",
"alpha\t\n----",
"alpha\n\n\n----",
"alpha\n\n----",
"alpha\n \n----",
"alpha\n----",
"alpha \n----",
],
),
("invalid character", &["\0", "\r", "\x7f"]),
(
"link",
&[
"[[FILE:alpha]]",
"[[File:alpha]]",
"[[alpha",
"[[alpha:beta]]",
"[[alpha:beta]]gamma",
"[[alpha]]",
"[[alpha]] beta",
"[[alpha]]beta",
"[[alpha]]beta gamma",
"[[alpha]]ü",
"[[alpha|",
"[[alpha|[beta]gamma]]",
"[[alpha|]]",
"[[alpha|beta",
"[[alpha|beta\ngamma]]",
"[[alpha|beta[[gamma]]]]",
"[[alpha|beta]]",
"[[alpha|beta]]gamma",
"[[category:alpha]]",
"[[category:alpha]]beta",
"[[category:alpha|beta]]",
"[[file:alpha]]",
"[[file:alpha]]beta",
"[[file:alpha|[[beta]]]]",
"[[file:alpha|[[beta]]gamma]]",
"[[file:alpha|]]",
"[[file:alpha|beta[[gamma]]]]",
"[[file:alpha|beta]]",
"[[file:alpha|beta]]gamma",
"[[image:alpha]]",
"[[|]]",
"[[|alpha]]",
"alpha [[beta]]",
"alpha[[beta]]",
"alpha[[beta]]gamma",
],
),
(
"list",
&[
"#",
"#\n\n\nalpha",
"#\n\nalpha",
"#\n#",
"#\n##",
"#\n##\n#",
"#\n*",
"#\n:",
"#\n;",
"#\nalpha",
"# alpha",
"##",
"##\n#",
"##\n#\n##",
"##\n##",
"#=alpha=",
"#alpha",
"#alpha\n#beta",
"*",
"*\n\nalpha",
"*\n#",
"*\n*",
"*\n**",
"*\n**\n*",
"*\n:",
"*\n;",
"*\nalpha",
"* alpha",
"* alpha\n* beta",
"**",
"**\n*",
"**\n*\n**",
"**\n**",
"*;\n*;",
"*;\n*;*",
"*;*\n*;",
"*;*\n*;#",
"*=alpha=",
"*alpha",
"*alpha\n*beta",
":",
":\n\nalpha",
":\n#",
":\n*",
":\n:",
":\n::",
":\n::\n:",
":\n;",
":\nalpha",
": alpha",
"::",
"::\n:",
"::\n:\n::",
"::\n::",
":=alpha=",
":alpha",
":alpha\nbeta",
";",
";\n\nalpha",
";\n#",
";\n*",
";\n:",
";\n;;",
";\n;;\n;",
";\nalpha",
"; alpha",
";;",
";;\n;",
";;\n;\n;;",
";;\n;;",
";=alpha=",
";alpha",
";alpha\nbeta",
"alpha\t\n#",
"alpha\n#",
"alpha\n#\nbeta",
"alpha\n*",
"alpha\n*\nbeta",
"alpha\n:",
"alpha\n:\nbeta",
"alpha\n;",
"alpha\n;\nbeta",
"alpha \n#",
],
),
(
"magic word",
&[
"__ALPHA__",
"__NOTC__ __TOC__",
"__NOTC___TOC__",
"__NOTC____TOC__",
"__TOC_",
"__TOC__",
"__TOC__ alpha",
"__TOC__alpha",
"__ToC__",
"__tOc__",
"__toc__",
"alpha __TOC__",
"alpha __TOC__ beta",
"alpha__TOC__",
"alpha__TOC__beta",
],
),
(
"mix",
&[
" alpha\n {|\n beta\n |}\n gamma",
" alpha\n {|\n|}",
" alpha\n |}",
" alpha\n |}\n beta",
" {|\n alpha\n |}",
" {|\n alpha\n|}",
"*\n alpha\n*",
"----\t\n*",
"----\n\n*",
"----\n*",
"----\n*\nalpha",
"---- \n*",
"<ref><!--",
"=alpha=\n\n----",
"=alpha=\n----",
"{{alpha|<!--",
"{|\n alpha\n |}",
"{|\n alpha\n|}",
"{|\n|}\t\n*",
"{|\n|}\n*",
"{|\n|}\n*\nalpha",
"{|\n|} \n*",
],
),
(
"nowiki",
&[
"<MATH>''</MATH>",
"<NOWIKI>''</NOWIKI>",
"<mAtH>''</MaTh>",
"<math>''</math>",
"<math>''alpha",
"<nOwIkI>''</NoWiKi>",
"<nowiki>\n*alpha\n</nowiki>",
"<nowiki>\n=alpha=\n</nowiki>",
"<nowiki>''</nowiki>",
"<nowiki>''alpha",
"<nowiki><!-- alpha --></nowiki>",
"<nowiki>{{</nowiki>",
"<nowiki>{{alpha}}</nowiki>",
"<nowiki>}}</nowiki>",
],
),
(
"paragraph break",
&[
"alpha\t\n\nbeta",
"alpha\n\t\nbeta",
"alpha\n\n\t beta",
"alpha\n\n\tbeta",
"alpha\n\n\n\nbeta",
"alpha\n\n\nbeta",
"alpha\n\nbeta",
"alpha\n \nbeta",
"alpha \n\nbeta",
],
),
(
"parameter",
&[
"*alpha}}}",
"[[alpha|beta}}}]]",
"{{{",
"{{{\talpha}}}",
"{{{\nalpha}}}",
"{{{''}}}",
"{{{[[alpha|beta}}}",
"{{{alpha\t|beta}}}",
"{{{alpha\t}}}",
"{{{alpha\n|beta}}}",
"{{{alpha\n}}}",
"{{{alpha |beta}}}",
"{{{alpha }}}",
"{{{alpha|",
"{{{alpha|\tbeta}}}",
"{{{alpha|\t|}}}",
"{{{alpha|\t}}}",
"{{{alpha|\nbeta}}}",
"{{{alpha|\n|}}}",
"{{{alpha|\n}}}",
"{{{alpha| beta|}}}",
"{{{alpha| |}}}",
"{{{alpha| }}}",
"{{{alpha|beta\t|}}}",
"{{{alpha|beta\n|}}}",
"{{{alpha|beta |}}}",
"{{{alpha|beta|",
"{{{alpha|beta|\n}}}",
"{{{alpha|beta|gamma}}}",
"{{{alpha|beta|}}}",
"{{{alpha|beta}}}",
"{{{alpha|}}}",
"{{{alpha}}}",
"{{{|''}}}",
"{{{||}}}",
"{{{|}}}",
"{{{}}}",
"}}}",
],
),
(
"preformatted block",
&[
" alpha",
" alpha",
" alpha\n\n\nbeta",
" alpha\n\nbeta",
" alpha\n beta",
" alpha\n beta\n gamma",
" alpha\n beta\ngamma",
" alpha\nbeta",
" alpha\nbeta\n gamma",
"alpha\t\n beta",
"alpha\n\n beta",
"alpha\n \n beta",
"alpha\n =beta=\ngamma",
"alpha\n beta",
"alpha\n beta\n gamma",
"alpha\n beta\ngamma",
"alpha \n beta",
],
),
(
"redirect",
&[
"\t#REDIRECT[[alpha]]",
"\n\n#REDIRECT[[alpha]]",
"\n #REDIRECT[[alpha]]",
"\n#REDIRECT [[alpha]]",
" \n#REDIRECT[[alpha]]",
" #REDIRECT[[alpha]]",
" #REDIRECT[[alpha]]",
"#REDIRECT\t:[[alpha]]",
"#REDIRECT\t[[alpha]]",
"#REDIRECT\n\n[[alpha]]",
"#REDIRECT\n [[alpha]]",
"#REDIRECT\n:\n[[alpha]]",
"#REDIRECT\n:[[alpha]]",
"#REDIRECT\n[[alpha]]",
"#REDIRECT \n[[alpha]]",
"#REDIRECT [[alpha]]",
"#REDIRECT : [[alpha]]",
"#REDIRECT :[[alpha]]",
"#REDIRECT [[alpha]]",
"#REDIRECT:\t[[alpha]]",
"#REDIRECT:\n[[alpha]]",
"#REDIRECT: [[alpha]]",
"#REDIRECT:[[alpha]]",
"#REDIRECT[[alpha]]",
"#REDIRECT[[alpha]]\n\nbeta",
"#REDIRECT[[alpha]]\n beta",
"#REDIRECT[[alpha]]\nbeta",
"#REDIRECT[[alpha]] \nbeta",
"#REDIRECT[[alpha]] beta",
"#REDIRECT[[alpha]] beta",
"#REDIRECT[[alpha]]''beta",
"#REDIRECT[[alpha]]beta",
"#REDIRECT[[alpha|]]",
"#REDIRECT[[alpha|]]beta",
"#REDIRECT[[alpha|beta\ngamma]]",
"#REDIRECT[[alpha|beta]]",
"#REDIRECT[[alpha|beta]]=gamma=",
"#REDIRECT[[alpha|beta]]gamma",
"#ReDiReCt[[alpha]]",
"#rEdIrEcT[[alpha]]",
"#redirect[[alpha]]",
],
),
(
"table",
&[
" {|\n |}",
" {|\n|}",
"alpha\n{|\nbeta\n|}",
"{|",
"{|\n |}",
"{|\n!\n alpha\n|}",
"{|\n!\n!\n|}",
"{|\n!\nalpha\n\nbeta\n|}",
"{|\n!\nalpha\n\n|}",
"{|\n!\nalpha\nbeta\n|}",
"{|\n!\nalpha \n|}",
"{|\n!\n|\n|}",
"{|\n!\n|-\n|}",
"{|\n!\n|}",
"{|\n! alpha\n|}",
"{|\n!!\n|}",
"{|\n!!!\n|}",
"{|\n!!!!\n|}",
"{|\n!!!|\n|}",
"{|\n!alpha\n\nbeta\n|}",
"{|\n!alpha\nbeta\n|}",
"{|\n!alpha\nbeta|gamma\n|}",
"{|\n!alpha\n|}",
"{|\n!alpha!!beta\n|}",
"{|\n!alpha!beta\n|}",
"{|\n!alpha|beta\n|}",
"{|\n!alpha||beta\n|}",
"{|\n!|\n|}",
"{|\n!|!!\n|}",
"{|\n!|alpha\n|}",
"{|\n!|alpha|beta\n|}",
"{|\n!||\n|}",
"{|\n!||alpha\n|}",
"{|\n!|||\n|}",
"{|\n*alpha\n|}",
"{|\n=alpha=\n|}",
"{|\nalpha\n|}",
"{|\n|",
"{|\n|\n alpha\n|}",
"{|\n|\n!\n|}",
"{|\n|\n*alpha\n|}",
"{|\n|\n=alpha=\n|}",
"{|\n|\nalpha\n\nbeta\n|}",
"{|\n|\nalpha\n\n|}",
"{|\n|\nalpha\nbeta\n|}",
"{|\n|\nalpha \n|}",
"{|\n|\n|\n|}",
"{|\n|\n|-\n|}",
"{|\n|\n|}",
"{|\n| alpha\n|}",
"{|\n|+\n alpha\n|}",
"{|\n|+\n*alpha\n|}",
"{|\n|+\n=alpha=\n|}",
"{|\n|+\nalpha\n\nbeta\n|}",
"{|\n|+\nalpha\nbeta\n|}",
"{|\n|+\nalpha\n|}",
"{|\n|+\n|+\n|}",
"{|\n|+\n|}",
"{|\n|+ alpha\n|}",
"{|\n|+!!\n|}",
"{|\n|+alpha\n\nbeta\n|}",
"{|\n|+alpha\nbeta\n|}",
"{|\n|+alpha\n|}",
"{|\n|+alpha \n|}",
"{|\n|+|\n|}",
"{|\n|+|alpha|\n|}",
"{|\n|+|alpha|beta\n|}",
"{|\n|+||\n|}",
"{|\n|+||alpha\n|}",
"{|\n|+|||\n|}",
"{|\n|-\n alpha\n|}",
"{|\n|-\n!\n|}",
"{|\n|-\n*alpha\n|}",
"{|\n|-\n=alpha=\n|}",
"{|\n|-\nalpha\n|}",
"{|\n|-\n|\n|}",
"{|\n|-\n|-\n|}",
"{|\n|-\n|}",
"{|\n|- alpha\n|}",
"{|\n|-alpha\n\n|}",
"{|\n|-alpha\n|}",
"{|\n|-alpha \n|}",
"{|\n|alpha\n\nbeta\n|}",
"{|\n|alpha\nbeta\n|}",
"{|\n|alpha\nbeta|gamma\n|}",
"{|\n|alpha\n|}",
"{|\n|alpha!!beta\n|}",
"{|\n|alpha!beta\n|}",
"{|\n|alpha|\n|}",
"{|\n|alpha|beta\n|}",
"{|\n|alpha||beta\n|}",
"{|\n||\n|}",
"{|\n||alpha\n|}",
"{|\n|||\n|}",
"{|\n||||\n|}",
"{|\n|}",
"{|\n|}\t\nalpha",
"{|\n|}\n\n\nalpha",
"{|\n|}\n\nalpha",
"{|\n|}\nalpha",
"{|\n|} \nalpha",
"{|\n|}alpha",
"{|alpha\nbeta\n|}",
"{|alpha\n|}",
],
),
(
"tag",
&[
"</BR>",
"</Br>",
"</alpha",
"</alpha>",
"</b",
"</b alpha>",
"</b alpha>beta",
"</b</b>",
"</b<b>",
"</b>",
"</b> alpha",
"</b>alpha",
"</br\t>",
"</br\n>",
"</br >",
"</br>",
"</ref",
"<BR>",
"<Br>",
"<alpha",
"<alpha>",
"<b",
"<b alpha>",
"<b alpha>beta",
"<b</b>",
"<b<b>",
"<b>",
"<b> alpha",
"<b>alpha",
"<br\t>",
"<br\n>",
"<br >",
"<br>",
"<r<ref>alpha</ref>beta",
"<ref",
"<ref />",
"<ref >",
"<ref/>",
"<ref>",
"<ref>\talpha</ref>",
"<ref>\nalpha</ref>",
"<ref> alpha</ref>",
"<ref></ref>",
"<ref>alpha\t</ref>",
"<ref>alpha\n</ref>",
"<ref>alpha </ref>",
"<ref>alpha</ref>",
"alpha<b>",
],
),
(
"template",
&[
"*alpha}}",
"[[alpha|beta}}]]",
"alpha {{beta}}",
"alpha {{beta}} gamma",
"alpha{{beta}}",
"alpha{{beta}}gamma",
"{{\nalpha}}",
"{{''}}",
"{{[[alpha|beta}}",
"{{alpha",
"{{alpha\n|beta}}",
"{{alpha\n|}}",
"{{alpha\n}}",
"{{alpha|",
"{{alpha|\nbeta}}",
"{{alpha|\n}}",
"{{alpha| beta}}",
"{{alpha|''}}",
"{{alpha|beta",
"{{alpha|beta\n=gamma}}",
"{{alpha|beta\n}}",
"{{alpha|beta =gamma}}",
"{{alpha|beta }}",
"{{alpha|beta=\ngamma}}",
"{{alpha|beta= gamma}}",
"{{alpha|beta=gamma\n}}",
"{{alpha|beta=gamma }}",
"{{alpha|beta=gamma=delta}}",
"{{alpha|beta=gamma|delta=epsilon}}",
"{{alpha|beta=gamma|delta}}",
"{{alpha|beta=gamma}}",
"{{alpha|beta=}}",
"{{alpha|beta|gamma=delta}}",
"{{alpha|beta|gamma}}",
"{{alpha|beta}",
"{{alpha|beta}}",
"{{alpha|beta}} gamma",
"{{alpha|beta}}gamma",
"{{alpha|}",
"{{alpha|}}",
"{{alpha}",
"{{alpha}}",
"{{alpha}} beta",
"{{alpha}}beta",
"}}",
],
),
];