use anyhow::Result;
#[test]
fn ptex_res() -> Result<()> {
let res = ptex::Res::from_uv(3, 4);
let base = 2_i32;
assert_eq!(res.u(), base.pow(3));
assert_eq!(res.v(), base.pow(4));
let res = res.clone_swapped();
assert_eq!(res.u(), base.pow(4));
assert_eq!(res.v(), base.pow(3));
let size = res.size();
assert_eq!(size, base.pow(3 + 4) as usize);
assert_eq!(size, base.pow(3 + 4) as usize);
let mut res = res.clone();
res.swap_uv();
assert_eq!(res.u(), base.pow(3));
assert_eq!(res.v(), base.pow(4));
let clamp_res = ptex::Res::from_uv(1, 2);
res.clamp(clamp_res);
assert_eq!(res.u(), base.pow(1));
assert_eq!(res.v(), base.pow(2));
let res = ptex::Res::from_uv(3, 4);
let tile_res = ptex::Res::from_uv(2, 2);
let tilesu = res.ntilesu(tile_res);
assert_eq!(tilesu, 2);
let tilesv = res.ntilesv(tile_res);
assert_eq!(tilesv, 4);
let tiles = res.ntiles(tile_res);
assert_eq!(tiles, 8);
Ok(())
}