diff options
Diffstat (limited to 'parse_wiki_text/examples/test')
-rw-r--r-- | parse_wiki_text/examples/test/main.rs | 51 | ||||
-rw-r--r-- | parse_wiki_text/examples/test/test.rs | 70 | ||||
-rw-r--r-- | parse_wiki_text/examples/test/test_cases.rs | 726 |
3 files changed, 847 insertions, 0 deletions
diff --git a/parse_wiki_text/examples/test/main.rs b/parse_wiki_text/examples/test/main.rs new file mode 100644 index 0000000..72872fc --- /dev/null +++ b/parse_wiki_text/examples/test/main.rs @@ -0,0 +1,51 @@ +// Copyright 2019 Fredrik Portström <https://portstrom.com> +// This is free software distributed under the terms specified in +// the file LICENSE at the top-level directory of this distribution. + +extern crate parse_wiki_text; + +mod test; +mod test_cases; + +fn main() { + let mut args = std::env::args(); + match args.nth(1) { + None => return test::run_test(&Default::default()), + Some(command) => match &command as _ { + "file" => { + if let Some(path) = args.next() { + if args.next().is_none() { + match std::fs::read_to_string(path) { + Err(error) => { + eprintln!("Failed to read file: {}", error); + std::process::exit(1); + } + Ok(file_contents) => { + println!( + "{:#?}", + parse_wiki_text::Configuration::default().parse(&file_contents) + ); + return; + } + } + } + } + } + "text" => { + if let Some(wiki_text) = args.next() { + if args.next().is_none() { + println!( + "{:#?}", + parse_wiki_text::Configuration::default() + .parse(&wiki_text.replace("\\t", "\t").replace("\\n", "\n")) + ); + return; + } + } + } + _ => {} + }, + } + eprintln!("invalid use"); + std::process::exit(1); +} diff --git a/parse_wiki_text/examples/test/test.rs b/parse_wiki_text/examples/test/test.rs new file mode 100644 index 0000000..9f04942 --- /dev/null +++ b/parse_wiki_text/examples/test/test.rs @@ -0,0 +1,70 @@ +// Copyright 2019 Fredrik Portström <https://portstrom.com> +// This is free software distributed under the terms specified in +// the file LICENSE at the top-level directory of this distribution. + +use crate::test_cases::TEST_CASES; + +pub fn run_test(configuration: &parse_wiki_text::Configuration) { + let mut output = concat!( + "<title>Parse Wiki Text test cases</title>", + "<style>", + "a{color:#006064;display:block;padding:8;text-decoration:none}", + "a:hover{background:#eee}", + "body{background:#f7f7f7;display:flex;font-family:sans-serif;height:100%;margin:0}", + "div div{background:#fff;box-shadow: 0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);margin:16;padding:16}", + "h1{font-size:20;margin:24 16 16}", + "hr{border:0;border-top:1px solid #ccc}", + "pre{margin:0}", + "span{color:#aaa}", + "</style>", + "<div style=\"background:#fff;box-shadow: 0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);flex:0 1 220px;overflow:auto\">" + ).to_owned(); + if let Some(window) = TEST_CASES + .windows(2) + .find(|window| window[0].0 >= window[1].0) + { + panic!("Sort: {:#?}", (window[0].0, window[1].0)); + } + for (title, test_cases) in TEST_CASES { + if let Some(window) = test_cases.windows(2).find(|window| window[0] >= window[1]) { + panic!("Sort: {:#?}", window); + } + output += &format!("<a href=#{}>", title.replace(" ", "_")); + output += title; + output += &format!(" <span>{}</span></a>", test_cases.len()); + } + output += "</div><div style=\"flex:1 1 200px;overflow:auto\">"; + for (title, test_cases) in TEST_CASES { + output += &format!("<h1 id={}>", title.replace(" ", "_")); + output += title; + output += "</h1>"; + for wiki_text in *test_cases { + output += "<div><pre>"; + output += &wiki_text + .replace("&", "&") + .replace("<", "<") + .replace("\t", "<span>⭾</span>") + .replace("\n", "<span>⏎</span>\n") + .replace(" ", "<span>·</span>") + .replace("</span><span>", ""); + match std::panic::catch_unwind(|| configuration.parse(wiki_text)) { + Err(_) => { + eprintln!("Panic with wiki text {:?}", wiki_text); + output += "</pre><hr>panic</div>"; + } + Ok(result) => { + output += "</pre><hr><pre>"; + output += &format!("{:#?}", result) + .replace("&", "&") + .replace("<", "<"); + output += "</pre></div>"; + } + } + } + } + output += "</div>"; + if let Err(error) = std::fs::write("report.html", output) { + eprintln!("Failed to write report: {}", error); + std::process::exit(1); + } +} diff --git a/parse_wiki_text/examples/test/test_cases.rs b/parse_wiki_text/examples/test/test_cases.rs new file mode 100644 index 0000000..da7b374 --- /dev/null +++ b/parse_wiki_text/examples/test/test_cases.rs @@ -0,0 +1,726 @@ +// Copyright 2019 Fredrik Portström <https://portstrom.com> +// This is free software distributed under the terms specified in +// the file LICENSE at the top-level directory of this distribution. + +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", + "}}", + ], + ), +]; |