use mdcast::pages::auto::classify;
use mdcast::pages::splitter::DefaultSplitter;
use mdcast::{AutoLayout, PageOrigin, PageSplitter};
#[test]
fn cover_deck_per_page_classification() {
let md = std::fs::read_to_string("tests/golden/cover-deck.md").unwrap();
let raw = DefaultSplitter.split(&md);
let pages = classify(raw, &AutoLayout::default());
let summary: Vec<(String, PageOrigin)> =
pages.iter().map(|p| (p.class.clone(), p.origin)).collect();
let expected: Vec<(&str, PageOrigin)> = vec![
("hero", PageOrigin::Explicit), ("content", PageOrigin::AutoDefault), ("content", PageOrigin::AutoDefault), ("section-divider", PageOrigin::AutoShape), ("image-full", PageOrigin::AutoShape), ("callout", PageOrigin::AutoShape), ("two-column", PageOrigin::Explicit), ("thanks", PageOrigin::AutoPositional), ];
assert_eq!(summary.len(), expected.len(), "page count mismatch: {:#?}", summary);
for (i, ((got_c, got_o), (exp_c, exp_o))) in summary.iter().zip(expected.iter()).enumerate() {
assert_eq!(got_c, exp_c, "page {i} class");
assert_eq!(got_o, exp_o, "page {i} origin");
}
}