Blob Blame History Raw
diff -ur astropy-0.3.2/astropy/io/fits/hdu/base.py astropy-0.3.2.checksum/astropy/io/fits/hdu/base.py
--- astropy-0.3.2/astropy/io/fits/hdu/base.py	2014-05-19 15:50:15.540882206 +0200
+++ astropy-0.3.2.checksum/astropy/io/fits/hdu/base.py	2014-05-19 15:51:32.084487630 +0200
@@ -1581,8 +1581,8 @@
 
         hi = sum32 >> u16
         lo = sum32 & uFFFF
-        hi += np.add.reduce(bytes[0::2])
-        lo += np.add.reduce(bytes[1::2])
+        hi += np.add.reduce(bytes[0::2], dtype=np.uint64)
+        lo += np.add.reduce(bytes[1::2], dtype=np.uint64)
 
         if (bytes.nbytes // 2) % 2:
             lo += last << u8
diff -ur astropy-0.3.2/astropy/io/fits/tests/test_checksum.py astropy-0.3.2.checksum/astropy/io/fits/tests/test_checksum.py
--- astropy-0.3.2/astropy/io/fits/tests/test_checksum.py	2014-05-19 15:50:15.549882277 +0200
+++ astropy-0.3.2.checksum/astropy/io/fits/tests/test_checksum.py	2014-05-19 15:52:39.844024043 +0200
@@ -42,7 +42,7 @@
         hdul.close()
 
     def test_image_create(self):
-        n = np.arange(100)
+        n = np.arange(100, dtype=np.int64)
         hdu = fits.PrimaryHDU(n)
         hdu.writeto(self.temp('tmp.fits'), clobber=True, checksum=True)
         with fits.open(self.temp('tmp.fits'), checksum=True) as hdul:
@@ -57,7 +57,7 @@
                 assert hdul[0].header['DATASUM'] == '4950'
 
     def test_nonstandard_checksum(self):
-        hdu = fits.PrimaryHDU(np.arange(10.0 ** 6))
+        hdu = fits.PrimaryHDU(np.arange(10.0 ** 6, dtype=np.float64))
         hdu.writeto(self.temp('tmp.fits'), clobber=True,
                     checksum='nonstandard')
         del hdu