66
77# pyre-unsafe
88
9+ import operator
910import unittest
1011
1112import numpy as np
@@ -21,6 +22,18 @@ def _load_image(src, filter_desc="format=pix_fmts=rgb24"):
2122 return spdl .io .to_numpy (spdl .io .load_image (src , filter_desc = filter_desc ))
2223
2324
25+ def _assert_all_ge (x , val ) -> None :
26+ np .testing .assert_array_compare (
27+ operator .ge , x , val , header = f"Arrays are not all >= { val } "
28+ )
29+
30+
31+ def _assert_all_le (x , val ) -> None :
32+ np .testing .assert_array_compare (
33+ operator .le , x , val , header = f"Arrays are not all <= { val } "
34+ )
35+
36+
2437class TestDecodeImage (unittest .TestCase ):
2538 def test_decode_image_gray16_native (self ) -> None :
2639 """Can decode gray16 PNG image (16be) as-is"""
@@ -44,8 +57,8 @@ def test_decode_image_gray16_native(self) -> None:
4457
4558 ffmpeg8 = get_ffmpeg_versions ()["libavutil" ][0 ] >= 60
4659
47- self . assertTrue ( np .all (hyp [..., :32 ] == 65535 if ffmpeg8 else 65022 ) )
48- self . assertTrue ( np .all (hyp [..., 32 :] == 0 if ffmpeg8 else 256 ) )
60+ np .testing . assert_array_equal (hyp [..., :32 ], 65535 if ffmpeg8 else 65022 )
61+ np .testing . assert_array_equal (hyp [..., 32 :], 0 if ffmpeg8 else 256 )
4962
5063 def test_decode_image_16be_rgb24 (self ) -> None :
5164 """Can decode gray16 PNG image (16be) as rgb24"""
@@ -67,8 +80,8 @@ def test_decode_image_16be_rgb24(self) -> None:
6780 ref = load_ref_image (sample .path , shape )
6881 np .testing .assert_array_equal (hyp , ref , strict = True )
6982
70- self . assertTrue ( np .all (hyp [:, :32 , :] == 255 ) )
71- self . assertTrue ( np .all (hyp [:, 32 :, :] == 0 ) )
83+ np .testing . assert_array_equal (hyp [:, :32 , :], 255 )
84+ np .testing . assert_array_equal (hyp [:, 32 :, :], 0 )
7285
7386 def test_decode_image_yuvj422_native (self ) -> None :
7487 """Can decode yuvj422p JPEG image as-is."""
@@ -153,17 +166,17 @@ def test_decode_image_yuvj420p_as_rgb24_edge_values(self) -> None:
153166
154167 red , green , blue = hyp [:, :width ], hyp [:, width :2 * width ], hyp [:, 2 * width :]
155168
156- self . assertTrue ( np . all ( red [..., 0 ] >= 254 ) )
157- self . assertTrue ( np . all ( red [..., 1 ] <= 1 ) )
158- self . assertTrue ( np .all (red [..., 2 ] == 0 ) )
169+ _assert_all_ge ( red [..., 0 ], 254 )
170+ _assert_all_le ( red [..., 1 ], 1 )
171+ np .testing . assert_array_equal (red [..., 2 ], 0 )
159172
160- self . assertTrue ( np .all (green [..., 0 ] == 0 ) )
161- self . assertTrue ( np . all ( green [..., 1 ] >= 253 ) )
162- self . assertTrue ( np . all ( green [..., 2 ] <= 1 ) )
173+ np .testing . assert_array_equal (green [..., 0 ], 0 )
174+ _assert_all_ge ( green [..., 1 ], 253 )
175+ _assert_all_le ( green [..., 2 ], 1 )
163176
164- self . assertTrue ( np . all ( blue [..., 0 ] <= 1 ) )
165- self . assertTrue ( np . all ( blue [..., 1 ] <= 1 ) )
166- self . assertTrue ( np . all ( blue [..., 2 ] >= 254 ) )
177+ _assert_all_le ( blue [..., 0 ], 1 )
178+ _assert_all_le ( blue [..., 1 ], 1 )
179+ _assert_all_ge ( blue [..., 2 ], 254 )
167180
168181 def test_decode_image_yuvj444p_native (self ) -> None :
169182 """Can decode yuvj444p JPEG image as-is."""
@@ -335,19 +348,19 @@ def test_load_image_batch_native_edge_values(self) -> None:
335348
336349 left , middle , right = arr [..., :w , :], arr [..., w :- w , :], arr [..., - w :, :]
337350 # Red
338- self . assertTrue ( np . all ( left [..., 0 ] >= 252 ) )
339- self . assertTrue ( np .all (left [..., 1 ] == 0 ) )
340- self . assertTrue ( np .all (left [..., 2 ] == 0 ) )
351+ _assert_all_ge ( left [..., 0 ], 252 )
352+ np .testing . assert_array_equal (left [..., 1 ], 0 )
353+ np .testing . assert_array_equal (left [..., 2 ], 0 )
341354
342355 # Green
343- self . assertTrue ( np .all (middle [..., 0 ] == 0 ) )
344- self . assertTrue ( np . all ( middle [..., 1 ] >= 253 ) )
345- self . assertTrue ( np .all (middle [..., 2 ] == 0 ) )
356+ np .testing . assert_array_equal (middle [..., 0 ], 0 )
357+ _assert_all_ge ( middle [..., 1 ], 253 )
358+ np .testing . assert_array_equal (middle [..., 2 ], 0 )
346359
347360 # Blue
348- self . assertTrue ( np .all (right [..., 0 ] == 0 ) )
349- self . assertTrue ( np .all (right [..., 1 ] == 0 ) )
350- self . assertTrue ( np . all ( right [..., 2 ] >= 253 ) )
361+ np .testing . assert_array_equal (right [..., 0 ], 0 )
362+ np .testing . assert_array_equal (right [..., 1 ], 0 )
363+ _assert_all_ge ( right [..., 2 ], 253 )
351364
352365 def test_batch_decode_image_handle_failure (self ) -> None :
353366 """load_image_batch dismisses failures when strict=False."""
0 commit comments