Skip to content

Commit decffe0

Browse files
authored
add remaining unit-tests for geometric transforms (#811)
1 parent 697f7c6 commit decffe0

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

‎src/geometric_transformations.rs‎

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1001,6 +1001,62 @@ mod tests {
10011001
use super::*;
10021002
use image::Luma;
10031003

1004+
#[test]
1005+
fn projection_and_then_applies_projections_in_order() {
1006+
let translation = Projection::translate(2.0, 3.0);
1007+
let scaling = Projection::scale(2.0, 4.0);
1008+
let point = (1.0, 2.0);
1009+
let expected = (6.0, 20.0);
1010+
1011+
let projection = translation.and_then(scaling);
1012+
1013+
assert_eq!(projection * point, expected);
1014+
}
1015+
1016+
#[test]
1017+
fn warp_into_writes_transformed_pixels_to_output() {
1018+
let image = gray_image!(
1019+
00, 01, 02;
1020+
10, 11, 12);
1021+
let border_value = 99;
1022+
let expected = gray_image!(
1023+
99, 00, 01;
1024+
99, 10, 11);
1025+
let projection = Projection::translate(1.0, 0.0);
1026+
let mut output = image.clone();
1027+
1028+
warp_into(
1029+
&image,
1030+
projection,
1031+
Interpolation::Nearest,
1032+
Border::Constant(Luma([border_value])),
1033+
&mut output,
1034+
);
1035+
1036+
assert_pixels_eq!(output, expected);
1037+
}
1038+
1039+
#[test]
1040+
fn warp_with_uses_mapping_to_find_source_pixels() {
1041+
let image = gray_image!(
1042+
00, 01, 02;
1043+
10, 11, 12);
1044+
let border_value = 99;
1045+
let expected = gray_image!(
1046+
01, 02, 99;
1047+
11, 12, 99);
1048+
let horizontal_offset = 1.0;
1049+
1050+
let warped = warp_with(
1051+
&image,
1052+
|x, y| (x + horizontal_offset, y),
1053+
Interpolation::Nearest,
1054+
Border::Constant(Luma([border_value])),
1055+
);
1056+
1057+
assert_pixels_eq!(warped, expected);
1058+
}
1059+
10041060
#[test]
10051061
fn test_rotate_nearest_zero_radians() {
10061062
let image = gray_image!(

0 commit comments

Comments
 (0)