#![allow(clippy::float_cmp)]
use affine_rs::{Affine, AffineError};
#[test]
fn converts_gdal_coefficients() {
let coefficients = [-237_481.5, 425.0, 0.0, 237_536.4, 0.0, -425.0];
let transform = Affine::from_gdal(coefficients);
assert_eq!(transform.to_gdal(), coefficients);
assert_eq!(
transform.to_shapely(),
[425.0, 0.0, 0.0, -425.0, -237_481.5, 237_536.4]
);
}
#[test]
fn world_file_round_trip_accounts_for_pixel_center() {
let text = "1.0\n0.0\n0.0\n-1.0\n100.5\n199.5\n";
let transform = Affine::from_world_file(text).unwrap();
assert_eq!(transform, Affine::new(1.0, 0.0, 100.0, 0.0, -1.0, 200.0));
assert_eq!(transform.to_world_file(), text);
}
#[test]
fn rejects_invalid_world_files() {
assert_eq!(
Affine::from_world_file("1\n2\n3"),
Err(AffineError::InvalidWorldFile)
);
assert_eq!(
Affine::from_world_file("1\n0\n0\n1\nNaN\n0"),
Err(AffineError::InvalidWorldFile)
);
}