additional tests

png-branch
an 2019-02-19 18:01:56 -05:00
parent 1f81a5b043
commit 76dd2160e7
8 changed files with 102 additions and 20 deletions

View File

@ -8,7 +8,7 @@ macro_rules! define_fixed_type {
(
$Type:ident : $IT:ident, $UT:ident, $LT:ident, $FracBits:expr
) => {
#[derive(Serialize)]
#[derive(Clone, PartialEq, Serialize)]
pub struct $Type($IT);
impl $Type
@ -27,7 +27,7 @@ macro_rules! define_fixed_type {
self.0 = bits as $IT
}
pub fn from_bits(bits: $UT) -> Self
pub const fn from_bits(bits: $UT) -> Self
{
$Type(bits as $IT)
}

View File

@ -41,10 +41,7 @@ fn dump_chunk(opt: &Options, cid: Ident, cnk: &[u8], eid: u16) -> ResultS<()>
{
if opt.wad_all {
make_chunk(opt, cid, cnk, eid)?;
return Ok(());
}
if opt.wad_chunks.contains(&cid) {
} else if opt.wad_chunks.contains(&cid) {
match &cid {
b"PICT" => {
let im = pict::load_pict(cnk)?;
@ -59,9 +56,7 @@ fn dump_chunk(opt: &Options, cid: Ident, cnk: &[u8], eid: u16) -> ResultS<()>
b"term" => make_yaml(opt, &rd_array(cnk, trm::read_term)?)?,
_ => (),
}
}
if opt.wad_unknown {
} else if opt.wad_unknown {
make_chunk(opt, cid, cnk, eid)?;
}

View File

@ -154,11 +154,11 @@ pub fn read_poly(b: &[u8]) -> ResultS<(Polygon, usize)>
media_l, sound, snd_amb, snd_rnd}, 128))
}
#[derive(Serialize)]
#[derive(Clone, PartialEq, Serialize)]
pub struct Point
{
x: Unit,
y: Unit,
pub x: Unit,
pub y: Unit,
}
#[derive(Debug, Serialize)]
@ -219,16 +219,16 @@ pub struct Polygon
snd_rnd: ObjID,
}
#[derive(Debug, Serialize)]
#[derive(Debug, PartialEq, Serialize)]
pub struct Minf
{
env_code: u16,
physi_id: u16,
music_id: u16,
msn_flag: MsnFlags,
env_flag: EnvFlags,
ent_flag: EntFlags,
levelnam: String,
pub env_code: u16,
pub physi_id: u16,
pub music_id: u16,
pub msn_flag: MsnFlags,
pub env_flag: EnvFlags,
pub ent_flag: EntFlags,
pub levelnam: String,
}
bitflags! {

BIN
tests/epnt.in Normal file

Binary file not shown.

56
tests/epnt.out Normal file
View File

@ -0,0 +1,56 @@
[
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(4096)},
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(4096)},
map::Point{x: Unit::from_bits(7168), y: Unit::from_bits(5120)},
map::Point{x: Unit::from_bits(7168), y: Unit::from_bits(6144)},
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(7168)},
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(7168)},
map::Point{x: Unit::from_bits(4096), y: Unit::from_bits(6144)},
map::Point{x: Unit::from_bits(4096), y: Unit::from_bits(5120)},
map::Point{x: Unit::from_bits(4608), y: Unit::from_bits(3072)},
map::Point{x: Unit::from_bits(3072), y: Unit::from_bits(4608)},
map::Point{x: Unit::from_bits(6656), y: Unit::from_bits(3072)},
map::Point{x: Unit::from_bits(8192), y: Unit::from_bits(4608)},
map::Point{x: Unit::from_bits(8192), y: Unit::from_bits(6656)},
map::Point{x: Unit::from_bits(6656), y: Unit::from_bits(8192)},
map::Point{x: Unit::from_bits(4608), y: Unit::from_bits(8192)},
map::Point{x: Unit::from_bits(3072), y: Unit::from_bits(6656)},
map::Point{x: Unit::from_bits(1536), y: Unit::from_bits(13312)},
map::Point{x: Unit::from_bits(9728), y: Unit::from_bits(13312)},
map::Point{x: Unit::from_bits(1536), y: Unit::from_bits(63488)},
map::Point{x: Unit::from_bits(9728), y: Unit::from_bits(63488)},
map::Point{x: Unit::from_bits(13312), y: Unit::from_bits(1536)},
map::Point{x: Unit::from_bits(13312), y: Unit::from_bits(9728)},
map::Point{x: Unit::from_bits(63488), y: Unit::from_bits(1536)},
map::Point{x: Unit::from_bits(63488), y: Unit::from_bits(9728)},
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(13312)},
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(14336)},
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(13312)},
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(14336)},
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(63488)},
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(62464)},
map::Point{x: Unit::from_bits(4096), y: Unit::from_bits(62464)},
map::Point{x: Unit::from_bits(4096), y: Unit::from_bits(61440)},
map::Point{x: Unit::from_bits(7168), y: Unit::from_bits(61440)},
map::Point{x: Unit::from_bits(7168), y: Unit::from_bits(62464)},
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(62464)},
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(63488)},
map::Point{x: Unit::from_bits(13312), y: Unit::from_bits(5120)},
map::Point{x: Unit::from_bits(14336), y: Unit::from_bits(5120)},
map::Point{x: Unit::from_bits(14336), y: Unit::from_bits(6144)},
map::Point{x: Unit::from_bits(13312), y: Unit::from_bits(6144)},
map::Point{x: Unit::from_bits(63488), y: Unit::from_bits(5120)},
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(5120)},
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(4096)},
map::Point{x: Unit::from_bits(61440), y: Unit::from_bits(4096)},
map::Point{x: Unit::from_bits(61440), y: Unit::from_bits(7168)},
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(7168)},
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(6144)},
map::Point{x: Unit::from_bits(63488), y: Unit::from_bits(6144)},
map::Point{x: Unit::from_bits(61440), y: Unit::from_bits(7680)},
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(7680)},
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(13312)},
map::Point{x: Unit::from_bits(61440), y: Unit::from_bits(8704)},
map::Point{x: Unit::from_bits(57344), y: Unit::from_bits(8704)},
map::Point{x: Unit::from_bits(57344), y: Unit::from_bits(13312)}
]

12
tests/epnt.rs Normal file
View File

@ -0,0 +1,12 @@
use maraiah::{durandal::{bin, fixed::*}, marathon::map};
#[test]
fn read_epnt_must_process_this()
{
assert_eq!(bin::rd_array(INPUT, map::read_epnt).unwrap(), OUTPUT.to_vec());
}
const INPUT: &'static [u8] = include_bytes!("epnt.in");
const OUTPUT: [map::Point; 54] = include!("epnt.out");
// EOF

BIN
tests/minf.in Normal file

Binary file not shown.

19
tests/minf.rs Normal file
View File

@ -0,0 +1,19 @@
use maraiah::marathon::map;
#[test]
fn read_minf_must_process_map0()
{
assert_eq!(map::read_minf(INPUT).unwrap(), map::Minf{
env_code: 0,
physi_id: 1,
music_id: 1,
msn_flag: map::MsnFlags::Repair,
env_flag: map::EnvFlags::empty(),
ent_flag: map::EntFlags::Solo | map::EntFlags::CoOp,
levelnam: "Waterloo Waterpark".to_string()
});
}
const INPUT: &'static [u8] = include_bytes!("minf.in");
// EOF