From b8d4bb76703bcb15578e2b23c5d256532180b894 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 3 Dec 2019 03:01:24 +0000 Subject: CTAN sync 201912030301 --- support/texlab/tests/test_symbol_hierarchical.rs | 167 +++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 support/texlab/tests/test_symbol_hierarchical.rs (limited to 'support/texlab/tests/test_symbol_hierarchical.rs') diff --git a/support/texlab/tests/test_symbol_hierarchical.rs b/support/texlab/tests/test_symbol_hierarchical.rs new file mode 100644 index 0000000000..d83c0db455 --- /dev/null +++ b/support/texlab/tests/test_symbol_hierarchical.rs @@ -0,0 +1,167 @@ +pub mod support; + +use lsp_types::Range; +use support::symbol::*; +use texlab::range::RangeExt; + +#[tokio::test] +async fn enumerate() { + let mut symbols = run_hierarchical("enumerate.tex").await; + assert_eq!(symbols.len(), 1); + verify::symbol( + &symbols[0], + "Enumerate", + None, + Range::new_simple(4, 0, 9, 15), + Range::new_simple(4, 0, 9, 15), + ); + + let children = symbols[0].children.take().unwrap(); + assert_eq!(children.len(), 4); + verify::symbol( + &children[0], + "1", + Some("it:foo"), + Range::new_simple(5, 9, 5, 23), + Range::new_simple(5, 4, 6, 4), + ); + verify::symbol( + &children[1], + "Item", + Some("it:bar"), + Range::new_simple(6, 9, 6, 23), + Range::new_simple(6, 4, 7, 4), + ); + verify::symbol( + &children[2], + "Baz", + None, + Range::new_simple(7, 4, 7, 14), + Range::new_simple(7, 4, 8, 4), + ); + verify::symbol( + &children[3], + "Qux", + Some("it:qux"), + Range::new_simple(8, 14, 8, 28), + Range::new_simple(8, 4, 9, 0), + ); +} + +#[tokio::test] +async fn equation() { + let symbols = run_hierarchical("equation.tex").await; + assert_eq!(symbols.len(), 3); + verify::symbol( + &symbols[0], + "Equation (1)", + Some("eq:foo"), + Range::new_simple(4, 16, 4, 30), + Range::new_simple(4, 0, 6, 14), + ); + verify::symbol( + &symbols[1], + "Equation", + Some("eq:bar"), + Range::new_simple(8, 16, 8, 30), + Range::new_simple(8, 0, 10, 14), + ); + verify::symbol( + &symbols[2], + "Equation", + None, + Range::new_simple(12, 0, 14, 14), + Range::new_simple(12, 0, 14, 14), + ); +} + +#[tokio::test] +async fn float() { + let symbols = run_hierarchical("float.tex").await; + assert_eq!(symbols.len(), 3); + verify::symbol( + &symbols[0], + "Figure 1: Foo", + Some("fig:foo"), + Range::new_simple(6, 17, 6, 32), + Range::new_simple(4, 0, 7, 12), + ); + verify::symbol( + &symbols[1], + "Figure: Bar", + Some("fig:bar"), + Range::new_simple(11, 17, 11, 32), + Range::new_simple(9, 0, 12, 12), + ); + verify::symbol( + &symbols[2], + "Figure: Baz", + None, + Range::new_simple(14, 0, 17, 12), + Range::new_simple(14, 0, 17, 12), + ); +} + +#[tokio::test] +async fn section() { + let mut symbols = run_hierarchical("section.tex").await; + assert_eq!(symbols.len(), 2); + verify::symbol( + &symbols[0], + "Foo", + None, + Range::new_simple(4, 0, 4, 13), + Range::new_simple(4, 0, 6, 0), + ); + verify::symbol( + &symbols[1], + "2 Bar", + Some("sec:bar"), + Range::new_simple(6, 0, 6, 13), + Range::new_simple(6, 0, 10, 0), + ); + + let children = symbols[1].children.take().unwrap(); + assert_eq!(children.len(), 1); + verify::symbol( + &children[0], + "Baz", + Some("sec:baz"), + Range::new_simple(8, 0, 8, 16), + Range::new_simple(8, 0, 10, 0), + ); +} + +#[tokio::test] +async fn theorem() { + let symbols = run_hierarchical("theorem.tex").await; + assert_eq!(symbols.len(), 4); + verify::symbol( + &symbols[0], + "Lemma 1 (Foo)", + Some("thm:foo"), + Range::new_simple(6, 18, 6, 33), + Range::new_simple(6, 0, 8, 11), + ); + verify::symbol( + &symbols[1], + "Lemma 2", + Some("thm:bar"), + Range::new_simple(10, 13, 10, 28), + Range::new_simple(10, 0, 12, 11), + ); + verify::symbol( + &symbols[2], + "Lemma", + Some("thm:baz"), + Range::new_simple(14, 13, 14, 28), + Range::new_simple(14, 0, 16, 11), + ); + verify::symbol( + &symbols[3], + "Lemma (Qux)", + None, + Range::new_simple(18, 0, 20, 11), + Range::new_simple(18, 0, 20, 11), + ); +} -- cgit v1.2.3