rust-av/av-metrics

Test failure on 32 bits arch for msssim_yuv420p10

eclipseo opened this issue · 2 comments

On both i686 and armv7hl, the test for msssim_yuv420p10 fails:

running 28 tests
test video::psnr::tests::psnr_yuv420p8 ... ok
test video::psnr::tests::psnr_yuv444p8 ... ok
test video::psnr::tests::apsnr_yuv420p10 ... ok
test video::psnr_hvs::tests::psnr_hvs_yuv420p10 ... ok
test video::psnr_hvs::tests::psnr_hvs_yuv420p8 ... ok
test video::psnr_hvs::tests::psnr_hvs_yuv444p8 ... ok
test video::ssim::tests::msssim_yuv422p8 ... ok
test video::ssim::tests::msssim_yuv420p10 ... FAILED
test video::ssim::tests::msssim_yuv444p8 ... ok
test video::ciede::tests::ciede2000_yuv420p10 ... ok
test video::ciede::tests::ciede2000_yuv420p8 ... ok
test video::ciede::tests::ciede2000_yuv420p10_nosimd ... ok
test video::ciede::tests::ciede2000_yuv422p8_nosimd ... ok
test video::ciede::tests::ciede2000_yuv444p8 ... ok
test video::ciede::tests::ciede2000_yuv420p8_nosimd ... ok
test video::psnr::tests::psnr_yuv420p10 ... ok
test video::ciede::tests::ciede2000_yuv422p8 ... ok
test video::ssim::tests::ssim_yuv420p10 ... ok
test video::psnr_hvs::tests::psnr_hvs_yuv422p8 ... ok
test video::ssim::tests::msssim_yuv420p8 ... ok
test video::ssim::tests::ssim_yuv420p8 ... ok
test video::psnr::tests::psnr_yuv422p8 ... ok
test video::ssim::tests::ssim_yuv422p8 ... ok
test video::ciede::tests::ciede2000_yuv444p8_nosimd ... ok
test video::psnr::tests::apsnr_yuv422p8 ... ok
test video::ssim::tests::ssim_yuv444p8 ... ok
test video::psnr::tests::apsnr_yuv420p8 ... ok
test video::psnr::tests::apsnr_yuv444p8 ... ok
failures:
---- video::ssim::tests::msssim_yuv420p10 stdout ----
thread 'video::ssim::tests::msssim_yuv420p10' panicked at 'Expected 19.039, got 19.01115031625374', src/lib.rs:58:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

We need to address the rounding I'm afraid.

Looks like an exponentiation was overflowing due to usize being 32-bits. Changing the variable to a u64 fixes the tests.