sim_lib_view_doc/
cookbook.rs1use sim_kernel::Expr;
4use sim_lib_scene::stack;
5
6use crate::{article, article_formatted, article_source, equation, prose, section};
7
8pub fn article_demo() -> Expr {
10 let scene = article_formatted(&sample_article());
11 debug_assert!(sim_lib_scene::validate_scene(&scene).is_ok());
12 scene
13}
14
15pub fn latex_lens_demo() -> Expr {
17 let doc = sample_article();
18 let scene = stack("row", vec![article_formatted(&doc), article_source(&doc)]);
19 debug_assert!(sim_lib_scene::validate_scene(&scene).is_ok());
20 scene
21}
22
23fn sample_article() -> Expr {
24 article(
25 "Cookbook Article",
26 vec![
27 section("Surface"),
28 prose("The same document opens through formatted and source lenses."),
29 equation("\\int_0^1 x^2 dx = 1/3"),
30 ],
31 )
32}
33
34#[cfg(test)]
35mod tests {
36 use super::*;
37
38 #[test]
39 fn cookbook_doc_demos_are_valid_scenes() {
40 sim_lib_scene::validate_scene(&article_demo()).expect("article scene validates");
41 sim_lib_scene::validate_scene(&latex_lens_demo()).expect("latex scene validates");
42 }
43}