56 lines
1.6 KiB
Rust
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());
|
|
}
|