caco 0.5.33

library for dealing with doom [et al] wad files
Documentation
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);
}