Files
csdemo/tests/lazy.rs

56 lines
1.6 KiB
Rust

#[test]
fn cmp_lazy_nonlazy_events() {
let content = std::fs::read("testfiles/mirage.dem").unwrap();
let container = csdemo::Container::parse(&content).unwrap();
let demo = csdemo::parser::parse(
csdemo::FrameIterator::parse(container.inner),
csdemo::parser::EntityFilter::disabled(),
)
.unwrap();
let lazy_demo =
csdemo::lazyparser::LazyParser::new(csdemo::Container::parse(&content).unwrap());
assert_eq!(demo.player_info, lazy_demo.player_info());
for (normal, lazied) in demo
.events
.into_iter()
.zip(lazy_demo.events().filter_map(|e| e.ok()))
{
assert_eq!(normal, lazied);
}
}
#[test]
fn cmp_lazy_nonlazy_entities() {
let content = std::fs::read("testfiles/mirage.dem").unwrap();
let container = csdemo::Container::parse(&content).unwrap();
let demo = csdemo::parser::parse(
csdemo::FrameIterator::parse(container.inner),
csdemo::parser::EntityFilter::all(),
)
.unwrap();
let lazy_demo =
csdemo::lazyparser::LazyParser::new(csdemo::Container::parse(&content).unwrap());
assert_eq!(demo.player_info, lazy_demo.player_info());
let mut normal_iter = demo
.entity_states
.ticks
.into_iter()
.flat_map(|t| t.states.into_iter().map(move |s| (t.tick, s)));
let mut lazy_iter = lazy_demo.entities().filter_map(|e| e.ok());
while let Some(normal) = normal_iter.next() {
let lazy = lazy_iter.next().unwrap();
assert_eq!(normal, lazy);
}
assert_eq!(None, lazy_iter.next());
}