131 lines
3.7 KiB
Rust
131 lines
3.7 KiB
Rust
use maraiah::{bin, fixed::*, map};
|
|
|
|
include!("data/rand.rs");
|
|
|
|
#[test]
|
|
fn read_minf_must_process()
|
|
{
|
|
let inp = include_bytes!("data/map/minf.in");
|
|
let out = include!("data/map/minf.out");
|
|
|
|
assert_eq!(map::minf::read(inp).unwrap(), out);
|
|
}
|
|
|
|
#[test]
|
|
fn read_epnt_must_process()
|
|
{
|
|
let inp = include_bytes!("data/map/epnt.in");
|
|
|
|
let inp = bin::rd_array(inp, map::epnt::read).unwrap();
|
|
let out = include!("data/map/epnt.out.2").to_vec();
|
|
|
|
assert_eq!(inp, out);
|
|
|
|
let inp = map::epnt::to_pnts(&inp);
|
|
let out = include!("data/map/epnt.out.1").to_vec();
|
|
|
|
assert_eq!(inp, out);
|
|
}
|
|
|
|
#[test]
|
|
fn read_term_must_process()
|
|
{
|
|
let inp = include_bytes!("data/map/term.in");
|
|
let out = include!("data/map/term.out");
|
|
|
|
let inp = bin::rd_array(inp, map::term::read).unwrap();
|
|
|
|
// for better debug output, we iterate over each item
|
|
assert_eq!(inp.len(), out.len());
|
|
|
|
for (itrm, otrm) in inp.iter().zip(&out) {
|
|
assert_eq!(itrm.groups.len(), otrm.groups.len());
|
|
for (igrp, ogrp) in itrm.groups.iter().zip(&otrm.groups) {
|
|
assert_eq!(igrp, ogrp);
|
|
}
|
|
|
|
assert_eq!(itrm.faces.len(), otrm.faces.len());
|
|
for (ifac, ofac) in itrm.faces.iter().zip(&otrm.faces) {
|
|
assert_eq!(ifac, ofac);
|
|
}
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn map_m2()
|
|
{
|
|
let inp = include_bytes!("data/m2/Map");
|
|
let mut rd = std::io::BufReader::new(&inp[..]);
|
|
|
|
let mp = map::head::read(&mut rd).unwrap();
|
|
let en = map::entr::read_all(&mp).unwrap();
|
|
|
|
assert!(map::data::read_all(mp.head(), &en).is_ok());
|
|
}
|
|
|
|
#[test]
|
|
#[ignore]
|
|
fn map_full_check()
|
|
{
|
|
use maraiah::{bin::OptU16,
|
|
map::{data::*, lins::*, lite::*, ltfn::*, minf::*, objs::*,
|
|
plac::*, pnts::*, poly::*},
|
|
xfer::TransferMode};
|
|
use std::collections::BTreeMap;
|
|
|
|
let inp = include_bytes!("data/map/testmap.in");
|
|
let mut rd = std::io::BufReader::new(&inp[..]);
|
|
|
|
let mp = map::head::read(&mut rd).unwrap();
|
|
let en = map::entr::read_all(&mp).unwrap();
|
|
let ed = map::data::read_all(mp.head(), &en).unwrap();
|
|
|
|
let mut out = BTreeMap::new();
|
|
|
|
out.insert(0, include!("data/map/testmap.out"));
|
|
|
|
assert_eq!(out, ed);
|
|
}
|
|
|
|
#[test]
|
|
fn map_must_not_process()
|
|
{
|
|
for inp in &RANDOM {
|
|
bin::rd_array(inp, map::fxpx::read).err().unwrap();
|
|
bin::rd_array(inp, map::lins::read).err().unwrap();
|
|
bin::rd_array(inp, map::lite::read).err().unwrap();
|
|
bin::rd_array(inp, map::lite::read_old).err().unwrap();
|
|
bin::rd_array(inp, map::medi::read).err().unwrap();
|
|
bin::rd_array(inp, map::mnpx::read).err().unwrap();
|
|
bin::rd_array(inp, map::note::read).err().unwrap();
|
|
bin::rd_array(inp, map::objs::read).err().unwrap();
|
|
bin::rd_array(inp, map::plat::read).err().unwrap();
|
|
bin::rd_array(inp, map::poly::read).err().unwrap();
|
|
bin::rd_array(inp, map::poly::read_old).err().unwrap();
|
|
bin::rd_array(inp, map::prpx::read).err().unwrap();
|
|
bin::rd_array(inp, map::sids::read).err().unwrap();
|
|
bin::rd_array(inp, map::sids::read_old).err().unwrap();
|
|
bin::rd_array(inp, map::term::read).err().unwrap();
|
|
bin::rd_array(inp, map::trmg::read).err().unwrap();
|
|
bin::rd_array(inp, map::wppx::read).err().unwrap();
|
|
map::minf::read(inp).err().unwrap();
|
|
map::minf::read_old(inp).err().unwrap();
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn map_must_not_panic()
|
|
{
|
|
for inp in &RANDOM {
|
|
drop(bin::rd_array(inp, map::ambi::read));
|
|
drop(bin::rd_array(inp, map::bonk::read));
|
|
drop(bin::rd_array(inp, map::epnt::read));
|
|
drop(bin::rd_array(inp, map::iidx::read));
|
|
drop(bin::rd_array(inp, map::plac::read));
|
|
drop(bin::rd_array(inp, map::pxpx::read));
|
|
drop(bin::rd_array(inp, map::trmf::read));
|
|
}
|
|
}
|
|
|
|
// EOF
|