use super::*;
use crate::indention::Indented;
#[test]
fn test_parse_nbs0() {
assert_eq!(parse_nested_blocks("", EmptyLinesMode::Skip), []);
}
#[test]
fn test_parse_nbs1() {
assert_eq!(
parse_nested_blocks("a", EmptyLinesMode::Skip),
[Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![]
}]
);
assert_eq!(
parse_nested_blocks("a\n", EmptyLinesMode::Skip),
[Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![]
}]
);
}
#[test]
fn test_parse_nbs2() {
assert_eq!(
parse_nested_blocks("a\nb", EmptyLinesMode::Skip),
[
Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![]
},
Block {
head: Indented {
indent: "",
data: "b"
},
subs: vec![]
}
]
);
assert_eq!(
parse_nested_blocks("a\n\r\nb\n", EmptyLinesMode::Skip),
[
Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![]
},
Block {
head: Indented {
indent: "",
data: "b"
},
subs: vec![]
}
]
);
}
#[test]
fn test_parse_nbs3() {
assert_eq!(
parse_nested_blocks("a\n b", EmptyLinesMode::Skip),
[Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![Block {
head: Indented {
indent: " ",
data: "b"
},
subs: vec![]
}]
}]
);
assert_eq!(
parse_nested_blocks("a\n\r\n b\n", EmptyLinesMode::Skip),
[Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![Block {
head: Indented {
indent: " ",
data: "b"
},
subs: vec![]
}]
}]
);
assert_eq!(
parse_nested_blocks("a\n\r\n b\nc", EmptyLinesMode::HonorIndent),
[
Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![]
},
Block {
head: Indented {
indent: "",
data: ""
},
subs: vec![Block {
head: Indented {
indent: " ",
data: "b"
},
subs: vec![]
}]
},
Block {
head: Indented {
indent: "",
data: "c"
},
subs: vec![]
}
]
);
assert_eq!(
parse_nested_blocks("a\n\r\n b\nc", EmptyLinesMode::PrevIndent),
[
Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![]
},
Block {
head: Indented {
indent: "",
data: ""
},
subs: vec![Block {
head: Indented {
indent: " ",
data: "b"
},
subs: vec![]
}]
},
Block {
head: Indented {
indent: "",
data: "c"
},
subs: vec![]
}
]
);
assert_eq!(
parse_nested_blocks("a\n \n b\nc", EmptyLinesMode::HonorIndent),
[
Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![
Block {
head: Indented {
indent: " ",
data: ""
},
subs: vec![],
},
Block {
head: Indented {
indent: " ",
data: "b"
},
subs: vec![]
},
]
},
Block {
head: Indented {
indent: "",
data: "c"
},
subs: vec![]
}
]
);
assert_eq!(
parse_nested_blocks("a\n \n b\nc", EmptyLinesMode::PrevIndent),
[
Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![],
},
Block {
head: Indented {
indent: " ",
data: ""
},
subs: vec![]
},
Block {
head: Indented {
indent: " ",
data: "b"
},
subs: vec![]
},
Block {
head: Indented {
indent: "",
data: "c"
},
subs: vec![]
}
]
);
assert_eq!(
parse_nested_blocks("a\n\r\n b\nc", EmptyLinesMode::Skip),
[
Block {
head: Indented {
indent: "",
data: "a"
},
subs: vec![Block {
head: Indented {
indent: " ",
data: "b"
},
subs: vec![]
}]
},
Block {
head: Indented {
indent: "",
data: "c"
},
subs: vec![]
}
]
);
}
#[test]
fn test_to_string() {
assert_eq!(
blocks_to_string(
&parse_nested_blocks("a\n\r\n b\nc", EmptyLinesMode::Skip)[..],
" "
),
"a\n b\nc\n",
);
}