spacetelescope / drizzle

A package for combining dithered images into a single image
https://spacetelescope-drizzle.readthedocs.io/en/latest/
Other
51 stars 26 forks source link

[1.14.0] Tests fail on big-endian platforms #115

Closed olebole closed 1 year ago

olebole commented 1 year ago

When compiling version 1.14.0 for (64-bit) big-endian platforms (s390x, ppc64), many tests error or fail in cdrizzle.tridz(), f.e.:

_______________________ test_zero_input_weight[lanczos3] _______________________

kernel = 'lanczos3'

    @pytest.mark.parametrize(
        'kernel', ['square', 'point', 'turbo', 'gaussian', 'lanczos3'],
    )
    def test_zero_input_weight(kernel):
        """
        Test do_driz square kernel with grid
        """
        # initialize input:
        insci = np.ones((200, 400), dtype=np.float32)
        inwht = np.ones((200, 400), dtype=np.float32)
        inwht[:, 150:155] = 0

        # initialize output:
        outsci = np.zeros((210, 410), dtype=np.float32)
        outwht = np.zeros((210, 410), dtype=np.float32)
        outctx = np.zeros((210, 410), dtype=np.int32)

        # define coordinate mapping:
        pixmap = np.moveaxis(np.mgrid[1:201, 1:401][::-1], 0, -1)

        # resample:
>       cdrizzle.tdriz(
            insci, inwht, pixmap,
            outsci, outwht, outctx,
            uniqid=1,
            xmin=0, xmax=400,
            ymin=0, ymax=200,
            pixfrac=1,
            kernel=kernel,
            in_units='cps',
            expscale=1,
            wtscale=1,
            fillstr='INDEF',
        )
E       ValueError: No or too few valid pixels in the pixel map.

drizzle/tests/test_drizzle.py:276: ValueError

This is a regression; it didn't happen with version 1.13.7. Versions:

Full build log on s390x