use std::fs::File;
#[cfg(feature = "regex")]
use regex::Regex;
use crate::{agnostic::*, wad::DoomWad};
fn doom_2() -> DoomWad {
DoomWad::load(&mut File::open("wads-for-tests/doom2.wad").unwrap()).unwrap()
}
#[test]
fn d2_lump_amt() {
let d2 = doom_2();
assert_eq!(d2.clump_amt(), 2919);
}
#[test]
fn d2_endoom() {
let d2 = doom_2();
assert_eq!(d2.nth_clump(2).name, "ENDOOM");
}
#[test]
fn d2_endoom_reverse() {
let d2 = doom_2();
assert_eq!(d2.which_clumps("ENDOOM")[0], 2);
}
#[test]
fn d2_all_with_name() {
let d2 = doom_2();
assert_eq!(d2.clumps_with_name("THINGS").len(), 32);
}
#[test]
fn d2_sprites() {
let d2 = doom_2();
assert_eq!(d2.clumps_between_markers("S_START", "S_END").len(), 1381);
}
#[test]
fn d2_nonexistant_lump() {
let d2 = doom_2();
assert!(d2.clump_by_name("SUB2DECI").is_none());
}
#[test]
fn d2_save_out() {
let d2 = doom_2();
d2.save(&mut File::create("wads-for-tests/doom2-resaved.wad").unwrap()).unwrap();
let d2_reload = DoomWad::load(&mut File::open("wads-for-tests/doom2-resaved.wad").unwrap()).unwrap();
assert_eq!(d2_reload.nth_clump(0), d2.nth_clump(0));
}
#[test]
#[cfg(feature = "regex")]
fn d2_maps() {
let d2 = doom_2();
assert_eq!(d2.which_clumps_re(Regex::new("^MAP.*$").unwrap()).len(), 32);
}