Beispiel #1
0
 def test_fei1_ext_header_with_native_byte_order(self):
     dtype = dtypes.get_ext_header_dtype(b'FEI1')
     assert dtype.itemsize == 768
     assert utils.byte_orders_equal(dtype['Metadata size'].byteorder, '=')
     with self.assertRaises(KeyError):
         _ = dtype['Scan rotation']
     # Bitmasks should always be little-endian
     assert utils.byte_orders_equal(dtype['Bitmask 1'].byteorder, '<')
     assert utils.byte_orders_equal(dtype['Bitmask 2'].byteorder, '<')
     assert utils.byte_orders_equal(dtype['Bitmask 3'].byteorder, '<')
     assert utils.byte_orders_equal(dtype['Bitmask 4'].byteorder, '<')
 def test_header_byte_order_is_unchanged_by_data_with_native_order(self):
     data = np.arange(6, dtype=np.float32).reshape(3, 2)
     header = self.mrcobject.header
     original_mapc = int(header.mapc)
     assert utils.byte_orders_equal(header.mode.dtype.byteorder,
                                    data.dtype.byteorder)
     self.mrcobject.set_data(data)
     assert utils.byte_orders_equal(header.mode.dtype.byteorder,
                                    data.dtype.byteorder)
     assert header.mode == 2
     assert header.mapc == original_mapc
    def test_header_byte_order_is_changed_by_data_with_opposite_order(self):
        data = np.arange(6, dtype=np.float32).reshape(3, 2)
        orig_byte_order = data.dtype.byteorder
        header = self.mrcobject.header
        original_mapc = int(header.mapc)
        assert utils.byte_orders_equal(header.mode.dtype.byteorder,
                                       orig_byte_order)

        self.mrcobject.set_data(data.newbyteorder())
        assert not utils.byte_orders_equal(header.mode.dtype.byteorder,
                                           orig_byte_order)
        assert header.mode == 2
        assert header.mapc == original_mapc

        self.mrcobject.set_data(data)
        assert utils.byte_orders_equal(header.mode.dtype.byteorder,
                                       orig_byte_order)
        assert header.mode == 2
        assert header.mapc == original_mapc
Beispiel #4
0
 def test_fei2_ext_header_with_big_endian_byte_order(self):
     dtype = dtypes.get_ext_header_dtype(b'FEI2', '>')
     # Normal fields should match the requested byte order
     assert utils.byte_orders_equal(dtype['Metadata size'].byteorder, '>')
     assert utils.byte_orders_equal(dtype['Alpha tilt'].byteorder, '>')
     assert utils.byte_orders_equal(dtype['Scan rotation'].byteorder, '>')
     # Bitmasks should always be little-endian
     assert utils.byte_orders_equal(dtype['Bitmask 1'].byteorder, '<')
     assert utils.byte_orders_equal(dtype['Bitmask 2'].byteorder, '<')
     assert utils.byte_orders_equal(dtype['Bitmask 3'].byteorder, '<')
     assert utils.byte_orders_equal(dtype['Bitmask 4'].byteorder, '<')
Beispiel #5
0
 def test_fei2_ext_header_with_native_byte_order(self):
     dtype = dtypes.get_ext_header_dtype(b'FEI2')
     assert dtype.itemsize == 888
     assert utils.byte_orders_equal(dtype['Metadata size'].byteorder, '=')
     assert dtype['Scan rotation'] is not None
     assert utils.byte_orders_equal(dtype['Scan rotation'].byteorder, '=')
     # Bitmasks should always be little-endian
     assert utils.byte_orders_equal(dtype['Bitmask 1'].byteorder, '<')
     assert utils.byte_orders_equal(dtype['Bitmask 2'].byteorder, '<')
     assert utils.byte_orders_equal(dtype['Bitmask 3'].byteorder, '<')
     assert utils.byte_orders_equal(dtype['Bitmask 4'].byteorder, '<')
Beispiel #6
0
 def test_equality_of_invalid_byte_orders(self):
     for pair in [('|', '<'), ('|', '>'), ('|', '='), ('<', '|'),
                  ('>', '|'), ('=', '|'), ('|', '|')]:
         with self.assertRaisesRegex(ValueError,
                                     "Unrecognised byte order indicator"):
             utils.byte_orders_equal(*pair)
Beispiel #7
0
 def test_unequal_byte_orders(self):
     assert not utils.byte_orders_equal('>', '<')
Beispiel #8
0
 def test_big_byte_orders_equal(self):
     assert utils.byte_orders_equal('>', '>')
Beispiel #9
0
 def test_little_byte_orders_equal(self):
     assert utils.byte_orders_equal('<', '<')
Beispiel #10
0
 def test_big_byte_order_equals_native(self):
     assert utils.byte_orders_equal('>', '=') == (sys.byteorder == 'big')
Beispiel #11
0
 def test_little_byte_order_equals_native(self):
     assert utils.byte_orders_equal('<', '=') == (sys.byteorder == 'little')
Beispiel #12
0
 def test_native_byte_orders_equal(self):
     assert utils.byte_orders_equal('=', '=')