#![allow(clippy::unwrap_used, clippy::expect_used)]
use multilinear_parser::parse_multilinear;
const NET: &str = "mood: calm\n\
\n\
# Intro\n\
\n\
mood: calm > tense\n\
\n\
# Fight\n\
\n\
mood: tense\n\
\n\
# Epilogue\n\
\n\
mood: tense > calm\n";
#[test]
fn iter_size_hint_counts_down_with_every_step() {
let info = parse_multilinear(NET.as_bytes()).expect("net should parse");
let mut remaining = info.events.iter().len();
assert_eq!(remaining, 3);
let mut iter = info.events.iter();
while iter.next().is_some() {
remaining -= 1;
assert_eq!(iter.size_hint(), (remaining, Some(remaining)));
assert_eq!(iter.len(), remaining);
}
assert_eq!(remaining, 0);
}
#[test]
fn into_iter_size_hint_matches_the_yielded_count() {
let info = parse_multilinear(NET.as_bytes()).expect("net should parse");
let mut iter = info.events.into_iter();
let announced = iter.len();
let mut yielded = 0;
while iter.next().is_some() {
yielded += 1;
}
assert_eq!(announced, yielded);
assert_eq!(iter.size_hint(), (0, Some(0)));
}