use std::fs::File;
use std::path::Path;
use common::{html_template, tabled, OUTPUT_DIR};
use pulldown_latex::config::DisplayMode;
mod common;
fn main() {
let concl = common::test();
if std::env::var("RENDER").as_deref() != Ok("true") {
concl.exit()
}
let mut file = File::create(Path::new(OUTPUT_DIR).join("mozilla.html")).unwrap();
html_template(&mut file, "Mozilla Tests", None, tabled).unwrap();
concl.exit();
}
round_trip!(
scripts,
"x^2y^2",
"_2F_3",
"x^{2y}",
"2^{2^{2^x}}",
"y_{x^2}",
"y_{x_2}",
r"x_{92}^{31415} + \pi",
"x_{y^a_b}^{z^c_d}",
"y_3'''",
display_mode = DisplayMode::Block
);
round_trip!(
fractions,
r"\frac{x+y^2}{k+1}",
r"x+y^\frac{2}{k + 1}",
r"\frac{a}{b/2}",
r"a_0 + \cfrac{1}{a_1 + \cfrac{1}{a_2 + \cfrac{1}{a_3 + \cfrac{1}{a_4}}}}",
r"a_0+\frac{1}{a_1+\frac{1}{a_2+\frac{1}{a_3+ \frac{1}{a_4}}}}",
r"\binom{p}{2} x^2 y^{p-2} - \frac{1}{1-x} \frac{1}{1-x^2}",
display_mode = DisplayMode::Block
);
round_trip!(
summations,
r"\sum_{\genfrac{}{}{0mu}{2}{0 \le i \le m}{0 < j < n}} P(i, j)",
r"\sum_{i=1}^p \sum_{j=1}^q \sum_{k=1}^r a_{ij}b_{jk}c_{ki}",
display_mode = DisplayMode::Block
);
round_trip!(
roots,
r"\sqrt{1+\sqrt{1+\sqrt{1+ \sqrt{1+\sqrt{1+\sqrt{1+ \sqrt{1+x}}}}}}}",
display_mode = DisplayMode::Block
);
round_trip!(
differentials,
r"\bigg(\frac{\partial^2} {\partial x^2} + \frac {\partial^2}{\partial y^2} \bigg){\big\lvert\varphi (x+iy)\big\rvert}^2",
display_mode = DisplayMode::Block
);
round_trip!(
integrals,
r"\int_1^x \frac{dt}{t}",
r"\int\!\!\!\int_D dx,dy",
display_mode = DisplayMode::Block
);
round_trip!(
environments,
r"f(x) = \begin{cases}1/3 & \text{if }0 \le x \le 1; \\ 2/3 & \text{if }3\le x \le 4;\\ 0 &\text{elsewhere.} \end{cases}",
r"\begin{pmatrix}
\begin{pmatrix}a&b\\c&d
\end{pmatrix} &
\begin{pmatrix}e&f\\g&h
\end{pmatrix} \\ 0 &
\begin{pmatrix}i&j\\k&l
\end{pmatrix}
\end{pmatrix}",
r"\det\begin{vmatrix}
c_0&c_1&c_2&\dots& c_n\\
c_1 & c_2 & c_3 & \dots &
c_{n+1}\\ c_2 & c_3 & c_4
&\dots & c_{n+2}\\ \vdots
&\vdots&\vdots & &\vdots
\\c_n & c_{n+1} & c_{n+2}
&\dots&c_{2n}
\end{vmatrix} > 0",
display_mode = DisplayMode::Block
);
round_trip!(
over_under_braces,
r"\overbrace{x +\cdots + x} ^{k \text{ times}}",
r"{\underbrace{\overbrace{ \mathstrut a,\dots,a}^{k ,a\rq\text{s}}, \overbrace{ \mathstrut b,\dots,b}^{l, b\rq\text{s}}}_{k+l \text{ elements}}}",
display_mode = DisplayMode::Block
);
round_trip!(
everything,
r"\sum_{p\text{ prime}} f(p)=\int_{t>1} f(t)d\pi(t)",
r"\lim_{n \to +\infty} \frac{\sqrt{2\pi n}}{n!} \genfrac (){}{}n{e}^n = 1",
r"\det(A) = \sum_{\sigma \in S_n} \epsilon(\sigma) \prod_{i=1}^n a_{i, \sigma_i}",
display_mode = DisplayMode::Block
);