def testSC(self): """test that datasets are unchanged after various compression/decompressions""" obt_np = compression.decByteOffset_numpy(compression.compByteOffset_numpy(self.ds)) self.assertEqual(abs(self.ds - obt_np).max(), 0.0, "numpy-numpy algo") obt_cy = compression.decByteOffset_cython(compression.compByteOffset_numpy(self.ds)) self.assertEqual(abs(self.ds - obt_cy).max(), 0.0, "cython-numpy algo") obt_cy2 = compression.decByteOffset_cython(compression.compByteOffset_numpy(self.ds), self.ds.size) self.assertEqual(abs(self.ds - obt_cy2).max(), 0.0, "cython2-numpy algo_orig") obt_np = compression.decByteOffset_numpy(compression.compByteOffset_cython(self.ds)) self.assertEqual(abs(self.ds - obt_np).max(), 0.0, "numpy-numpy algo") obt_cy = compression.decByteOffset_cython(compression.compByteOffset_cython(self.ds)) self.assertEqual(abs(self.ds - obt_cy).max(), 0.0, "cython-numpy algo") obt_cy2 = compression.decByteOffset_cython(compression.compByteOffset_cython(self.ds), self.ds.size) self.assertEqual(abs(self.ds - obt_cy2).max(), 0.0, "cython2-numpy algo_orig")
def test_byte_offset(self): """ check byte offset algorithm""" cbf = fabio.open(self.cbf_filename) starter = b"\x0c\x1a\x04\xd5" cbs = cbf.cbs startPos = cbs.find(starter) + 4 data = cbs[startPos: startPos + int(cbf.header["X-Binary-Size"])] startTime = time.time() numpyRes = decByteOffset_numpy(data, size=cbf.dim1 * cbf.dim2) tNumpy = time.time() - startTime logger.info("Timing for Numpy method : %.3fs" % tNumpy) startTime = time.time() cythonRes = decByteOffset_cython(stream=data, size=cbf.dim1 * cbf.dim2) tCython = time.time() - startTime delta = abs(numpyRes - cythonRes).max() self.assertAlmostEqual(0, delta) logger.info("Timing for Cython method : %.3fs, max delta= %s" % (tCython, delta))
import numpy from fabio import compression test = numpy.array([0, 1, 2, 127, 0, 1, 2, 128, 0, 1, 2, 32767, 0, 1, 2, 32768, 0, 1, 2, 2147483647, 0, 1, 2, 2147483648, 0, 1, 2, 128, 129, 130, 32767, 32768, 128, 129, 130, 32768, 2147483647, 2147483648]) b = compression.compByteOffset_numpy(test) print(compression.decByteOffset_cython(b) - test) print(compression.decByteOffset_numpy(b) - test)
import numpy from fabio import compression test = numpy.array([ 0, 1, 2, 127, 0, 1, 2, 128, 0, 1, 2, 32767, 0, 1, 2, 32768, 0, 1, 2, 2147483647, 0, 1, 2, 2147483648, 0, 1, 2, 128, 129, 130, 32767, 32768, 128, 129, 130, 32768, 2147483647, 2147483648 ]) b = compression.compByteOffset_numpy(test) print(compression.decByteOffset_cython(b) - test) print(compression.decByteOffset_numpy(b) - test)