add tests
This commit is contained in:
parent
daf578ca42
commit
2d0c21279a
@ -8,6 +8,7 @@
|
|||||||
- support webp and zstd compression in tiff
|
- support webp and zstd compression in tiff
|
||||||
- loaders use "minimise" to close input files earlier
|
- loaders use "minimise" to close input files earlier
|
||||||
- integrate support for oss-fuzz [omira-sch]
|
- integrate support for oss-fuzz [omira-sch]
|
||||||
|
- add vips_switch() / vips_case() ... fast many-way ifthenelse
|
||||||
|
|
||||||
9/7/19 started 8.8.2
|
9/7/19 started 8.8.2
|
||||||
- better early shutdown in readers
|
- better early shutdown in readers
|
||||||
|
@ -539,6 +539,27 @@ class TestConversion:
|
|||||||
result = r(50, 50)
|
result = r(50, 50)
|
||||||
assert_almost_equal_objects(result, [3.0, 4.9, 6.9], threshold=0.1)
|
assert_almost_equal_objects(result, [3.0, 4.9, 6.9], threshold=0.1)
|
||||||
|
|
||||||
|
def test_switch(self):
|
||||||
|
x = pyvips.Image.grey(256, 256, uchar=True)
|
||||||
|
|
||||||
|
# slice into two at 128, we should get 50% of pixels in each half
|
||||||
|
index = pyvips.Image.switch([x < 128, x >= 128])
|
||||||
|
assert index.avg() == 0.5
|
||||||
|
|
||||||
|
# slice into four
|
||||||
|
index = pyvips.Image.switch([
|
||||||
|
x < 64,
|
||||||
|
x >= 64 and x < 128,
|
||||||
|
x >= 128 and x < 192,
|
||||||
|
x >= 192
|
||||||
|
])
|
||||||
|
assert index.avg() == 1.5
|
||||||
|
|
||||||
|
# no match should return n + 1
|
||||||
|
# FIXME uncomment when we fix relational const
|
||||||
|
#index = pyvips.Image.switch([x == 1000, x == 2000])
|
||||||
|
#assert index.avg() == 2
|
||||||
|
|
||||||
def test_insert(self):
|
def test_insert(self):
|
||||||
for x in all_formats:
|
for x in all_formats:
|
||||||
for y in all_formats:
|
for y in all_formats:
|
||||||
|
@ -109,6 +109,25 @@ class TestHistogram:
|
|||||||
# new mean should be closer to target mean
|
# new mean should be closer to target mean
|
||||||
assert abs(im.avg() - 128) > abs(im2.avg() - 128)
|
assert abs(im.avg() - 128) > abs(im2.avg() - 128)
|
||||||
|
|
||||||
|
def test_case(self):
|
||||||
|
# slice into two at 128, we should get 50% of pixels in each half
|
||||||
|
x = pyvips.Image.grey(256, 256, uchar=True)
|
||||||
|
index = pyvips.Image.switch([x < 128, x >= 128])
|
||||||
|
|
||||||
|
y = index.case([10, 20])
|
||||||
|
assert y.avg() == 15
|
||||||
|
|
||||||
|
# slice into four
|
||||||
|
index = pyvips.Image.switch([
|
||||||
|
x < 64,
|
||||||
|
x >= 64 and x < 128,
|
||||||
|
x >= 128 and x < 192,
|
||||||
|
x >= 192
|
||||||
|
])
|
||||||
|
assert index.case([10, 20, 30, 40]).avg() == 25
|
||||||
|
|
||||||
|
# values over N should use the last value
|
||||||
|
assert index.case([10, 20, 30]).avg() == 22.5
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
pytest.main()
|
pytest.main()
|
||||||
|
Loading…
Reference in New Issue
Block a user