def test_image_j_produces_proper_data_types(self): io_delegate = TIFF_IO.TIFFIODelegate_ImageJ(API()) for t in (numpy.int16, numpy.uint16, numpy.int32, numpy.uint32, numpy.int64, numpy.uint64, numpy.float32, numpy.float64): b = io.BytesIO() xdata_w = DataAndMetadata.new_data_and_metadata(numpy.zeros((16, 16), dtype=t)) io_delegate.write_data_and_metadata_stream(xdata_w, b) b.seek(0) xdata_r = io_delegate.read_data_and_metadata_from_stream(b) self.assertEqual(xdata_w.data_shape, xdata_r.data_shape) self.assertIn(xdata_r.data.dtype, (numpy.uint16, numpy.float32))
def test_baseline_writes_reads_rgb_roundtrip(self): io_delegate = TIFF_IO.TIFFIODelegate_Baseline(API()) d = numpy.zeros((16, 16, 3), dtype=numpy.uint8) d[..., 1] = 1 d[..., 2] = 2 b = io.BytesIO() xdata_w = DataAndMetadata.new_data_and_metadata(d) io_delegate.write_data_and_metadata_stream(xdata_w, b) b.seek(0) xdata_r = io_delegate.read_data_and_metadata_from_stream(b) self.assertEqual(xdata_w.data_shape, xdata_r.data_shape) self.assertEqual(xdata_w.data.dtype, xdata_r.data.dtype) self.assertTrue(numpy.array_equal(xdata_w.data, xdata_r.data))
def test_baseline_scales_to_uint16(self): io_delegate = TIFF_IO.TIFFIODelegate_Baseline(API()) d = numpy.zeros((16, 16), dtype=numpy.float32) d[0, 0] = 0.5 d[1, 1] = 1.0 b = io.BytesIO() xdata_w = DataAndMetadata.new_data_and_metadata(d) io_delegate.write_data_and_metadata_stream(xdata_w, b) b.seek(0) xdata_r = io_delegate.read_data_and_metadata_from_stream(b) self.assertEqual(xdata_w.data_shape, xdata_r.data_shape) self.assertEqual(numpy.uint16, xdata_r.data.dtype) self.assertEqual(numpy.amin(xdata_r.data), 0) self.assertEqual(numpy.amax(xdata_r.data), 65535)
def test_imagej_writes_reads_2d_collection_1d_data_roundtrip(self): api = API() io_delegate = TIFF_IO.TIFFIODelegate_ImageJ(api) for include_swift_metadata in (False, True): io_delegate._include_nion_metadata = include_swift_metadata data = numpy.zeros((15, 16, 5)) data_descriptor = api.create_data_descriptor(False, 2, 1) xdata_w = api.create_data_and_metadata(data, data_descriptor=data_descriptor) b = io.BytesIO() io_delegate.write_data_and_metadata_stream(xdata_w, b) b.seek(0) xdata_r = io_delegate.read_data_and_metadata_from_stream(b) self.assertEqual(xdata_w.data_shape, xdata_r.data_shape) self.assertEqual(xdata_w.is_sequence, xdata_r.is_sequence) self.assertEqual(xdata_w.collection_dimension_count, xdata_r.collection_dimension_count)