openpreserve / jpylyzer

JP2 (JPEG 2000 Part 1) validator and properties extractor. Jpylyzer was specifically created to check that a JP2 file really conforms to the format's specifications. Additionally jpylyzer is able to extract technical characteristics.
http://jpylyzer.openpreservation.org/
Other
69 stars 28 forks source link

Unit tests broken? #227

Closed bitsgalore closed 3 months ago

bitsgalore commented 3 months ago

While working on this issue I noticed that unit tests were successful, even after I deliberately changed the validation outcome here. Needs further investigation (could be something in my local setup).

bitsgalore commented 3 months ago

After removing all tests in test_testfiles.py except "test_validation_outcome_jp2(inJP2)", this happens:

=========================== short test summary info ============================
FAILED tests/unit/test_testfiles.py::test_validation_outcome_jp2[/home/johan/jpylyzer-test-files/files/erdas-sandiego3i_5.5.jp2]
FAILED tests/unit/test_testfiles.py::test_validation_outcome_jp2[/home/johan/jpylyzer-test-files/files/erdas-nullinput-uint8-rgb-null-2tileparts.jp2]
FAILED tests/unit/test_testfiles.py::test_validation_outcome_jp2[/home/johan/jpylyzer-test-files/files/erdas-sandiego1m_null.jp2]
FAILED tests/unit/test_testfiles.py::test_validation_outcome_jp2[/home/johan/jpylyzer-test-files/files/erdas-sandiego3i_5.2.jp2]
FAILED tests/unit/test_testfiles.py::test_validation_outcome_jp2[/home/johan/jpylyzer-test-files/files/oj-tnsot-0.jp2]

BUT for the full, unedited file all 646 tests pass! So there's something very odd going on.

Also, it seems that most of the "failing" JP2s above the culprit is the number of tile-parts per tile (for which I changed the test as per this issue).

bitsgalore commented 3 months ago

So turns out re-used function names were the culprit here:

https://github.com/openpreserve/jpylyzer/commit/e441e90ede1c5af312a46c7697ec9f22074a539a

TODO: look at the 5 tests that currently fail (mostly unexpected validation outcomes, probably related to issue 226.

bitsgalore commented 3 months ago

This fixes all 5 failing tests:

https://github.com/openpreserve/jpylyzer/commit/4fd7c23efa9de32d44f7c475509f60ca647aef5a