use obj::{Obj, ObjData};
#[test]
fn round_trip_sponza_no_mtls() {
let sponza: Obj = Obj::load("test_assets/sponza.obj").unwrap();
let mut obj = Vec::new();
sponza.data.write_to_buf(&mut obj).unwrap();
let sponza_round_trip = ObjData::load_buf(obj.as_slice()).unwrap();
assert_eq!(sponza_round_trip, sponza.data);
}
#[test]
fn round_trip_sponza_with_mtl() {
let mut sponza: Obj = Obj::load("test_assets/sponza.obj").unwrap();
sponza.load_mtls().unwrap();
let mut obj = Vec::new();
sponza.data.write_to_buf(&mut obj).unwrap();
let mut sponza_round_trip: Obj = Obj {
data: ObjData::load_buf(obj.as_slice()).unwrap(),
path: sponza.path,
};
let mut round_trip_mtl_libs = std::collections::HashMap::new();
for mtl in sponza.data.material_libs.iter() {
let mut out = Vec::new();
mtl.write_to_buf(&mut out).unwrap();
round_trip_mtl_libs.insert(mtl.filename.as_str(), out);
}
sponza_round_trip
.load_mtls_fn(|_, mtllib| Ok(round_trip_mtl_libs.get(mtllib).unwrap().as_slice()))
.unwrap();
assert_eq!(sponza_round_trip.data, sponza.data);
}