#![cfg(feature = "parser")]
mod common;
use vcard::tree::cst::VcardCst;
#[test]
fn parses_and_round_trips() {
let projects = [
("emersion", 5),
("jeroen", 6),
("mixerp", 2),
("nuovo", 3),
("sabre", 2),
("vcardigan", 2),
];
for (project, count) in projects {
common::each_fixture(project, count, |name, input| {
let card = VcardCst::parse(input).unwrap_or_else(|e| panic!("parse {name}: {e}"));
let output = card.to_string();
let reparsed =
VcardCst::parse(&output).unwrap_or_else(|e| panic!("reparse {name}: {e}"));
assert_eq!(
reparsed.to_string(),
output,
"not a serialize fixpoint: {name}"
);
let _ = card.decode();
});
}
}