Blur: improve tests
This commit is contained in:
parent
d7284fcd37
commit
50640efb17
130
src/blur.rs
130
src/blur.rs
@ -277,7 +277,7 @@ mod tests {
|
|||||||
0.494_753_96,
|
0.494_753_96,
|
||||||
];
|
];
|
||||||
for (v1, v2) in dst.iter().zip(sol) {
|
for (v1, v2) in dst.iter().zip(sol) {
|
||||||
assert!((v1 - v2).abs() < 1e-6);
|
assert!((v1 - v2).abs() < 1e-6, "box_blur_h failure");
|
||||||
}
|
}
|
||||||
|
|
||||||
blur.box_blur_v(&src, &mut dst, width, height, 1, 1.0);
|
blur.box_blur_v(&src, &mut dst, width, height, 1, 1.0);
|
||||||
@ -348,7 +348,7 @@ mod tests {
|
|||||||
0.672_591_45,
|
0.672_591_45,
|
||||||
];
|
];
|
||||||
for (v1, v2) in dst.iter().zip(sol) {
|
for (v1, v2) in dst.iter().zip(sol) {
|
||||||
assert!((v1 - v2).abs() < 1e-6);
|
assert!((v1 - v2).abs() < 1e-6, "box_blur_v failure");
|
||||||
}
|
}
|
||||||
|
|
||||||
blur.box_blur(&mut src, &mut dst, width, height, 1, 1.0);
|
blur.box_blur(&mut src, &mut dst, width, height, 1, 1.0);
|
||||||
@ -419,7 +419,7 @@ mod tests {
|
|||||||
0.538_112_16,
|
0.538_112_16,
|
||||||
];
|
];
|
||||||
for (v1, v2) in src.iter().zip(sol) {
|
for (v1, v2) in src.iter().zip(sol) {
|
||||||
assert!((v1 - v2).abs() < 1e-6);
|
assert!((v1 - v2).abs() < 1e-6, "box_blur failure");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -434,4 +434,128 @@ mod tests {
|
|||||||
let boxes = Blur::boxes_for_gaussian::<3>(2.5);
|
let boxes = Blur::boxes_for_gaussian::<3>(2.5);
|
||||||
assert_eq!(boxes, [2, 2, 2]);
|
assert_eq!(boxes, [2, 2, 2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn total_blur_test() {
|
||||||
|
let height = 10;
|
||||||
|
let width = 10;
|
||||||
|
let mut src = (1..=(height * width))
|
||||||
|
.map(|i| (i as f32).recip())
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
let mut blur = Blur::new(width);
|
||||||
|
|
||||||
|
blur.box_blur(
|
||||||
|
&mut src,
|
||||||
|
&mut vec![0.0; width * height],
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
1,
|
||||||
|
0.1,
|
||||||
|
);
|
||||||
|
let sol = vec![
|
||||||
|
0.020623347,
|
||||||
|
0.031088883,
|
||||||
|
0.03575954,
|
||||||
|
0.04622508,
|
||||||
|
0.050895732,
|
||||||
|
0.06136127,
|
||||||
|
0.066031925,
|
||||||
|
0.06618575,
|
||||||
|
0.055720214,
|
||||||
|
0.051049553,
|
||||||
|
0.038047146,
|
||||||
|
0.05850169,
|
||||||
|
0.067484796,
|
||||||
|
0.087939344,
|
||||||
|
0.09692245,
|
||||||
|
0.11737699,
|
||||||
|
0.1263601,
|
||||||
|
0.12663625,
|
||||||
|
0.1061817,
|
||||||
|
0.097198606,
|
||||||
|
0.040142592,
|
||||||
|
0.06103797,
|
||||||
|
0.07035155,
|
||||||
|
0.091246925,
|
||||||
|
0.1005605,
|
||||||
|
0.12145588,
|
||||||
|
0.13076945,
|
||||||
|
0.13107346,
|
||||||
|
0.11017809,
|
||||||
|
0.100864515,
|
||||||
|
0.057566393,
|
||||||
|
0.088450775,
|
||||||
|
0.102076806,
|
||||||
|
0.1329612,
|
||||||
|
0.14658722,
|
||||||
|
0.1774716,
|
||||||
|
0.19109762,
|
||||||
|
0.19152397,
|
||||||
|
0.16063958,
|
||||||
|
0.14701356,
|
||||||
|
0.05966184,
|
||||||
|
0.09098706,
|
||||||
|
0.10494356,
|
||||||
|
0.13626878,
|
||||||
|
0.15022527,
|
||||||
|
0.18155049,
|
||||||
|
0.19550698,
|
||||||
|
0.19596118,
|
||||||
|
0.16463596,
|
||||||
|
0.15067947,
|
||||||
|
0.077085644,
|
||||||
|
0.118399866,
|
||||||
|
0.13666882,
|
||||||
|
0.17798306,
|
||||||
|
0.19625197,
|
||||||
|
0.2375662,
|
||||||
|
0.25583515,
|
||||||
|
0.2564117,
|
||||||
|
0.21509746,
|
||||||
|
0.19682851,
|
||||||
|
0.0791811,
|
||||||
|
0.12093615,
|
||||||
|
0.13953556,
|
||||||
|
0.18129064,
|
||||||
|
0.19989002,
|
||||||
|
0.24164508,
|
||||||
|
0.26024452,
|
||||||
|
0.2608489,
|
||||||
|
0.21909383,
|
||||||
|
0.20049442,
|
||||||
|
0.07922324,
|
||||||
|
0.12098102,
|
||||||
|
0.13958256,
|
||||||
|
0.18134035,
|
||||||
|
0.19994187,
|
||||||
|
0.24169965,
|
||||||
|
0.2603012,
|
||||||
|
0.26090586,
|
||||||
|
0.21914804,
|
||||||
|
0.20054653,
|
||||||
|
0.06179944,
|
||||||
|
0.09356822,
|
||||||
|
0.1078573,
|
||||||
|
0.13962609,
|
||||||
|
0.15391515,
|
||||||
|
0.18568392,
|
||||||
|
0.19997302,
|
||||||
|
0.20045534,
|
||||||
|
0.16868654,
|
||||||
|
0.15439747,
|
||||||
|
0.059703995,
|
||||||
|
0.09103194,
|
||||||
|
0.10499055,
|
||||||
|
0.1363185,
|
||||||
|
0.15027711,
|
||||||
|
0.18160504,
|
||||||
|
0.19556366,
|
||||||
|
0.19601813,
|
||||||
|
0.16469017,
|
||||||
|
0.15073158,
|
||||||
|
];
|
||||||
|
for (v1, v2) in src.iter().zip(sol) {
|
||||||
|
assert!((v1 - v2).abs() < 1e-6, "run failure {} vs {}", v1, v2);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user