|
8 | 8 | from pytest_mock import MockerFixture
|
9 | 9 |
|
10 | 10 | from depiction.persistence import ImzmlReadFile, ImzmlModeEnum
|
| 11 | +from depiction.persistence.imzml.parser.parse_spectra import ParseSpectra |
11 | 12 | from depiction.persistence.pixel_size import PixelSize
|
12 | 13 |
|
13 | 14 |
|
@@ -77,14 +78,38 @@ def test_reader_when_exception(mocker: MockerFixture, mock_read_file: ImzmlReadF
|
77 | 78 |
|
78 | 79 |
|
79 | 80 | def test_get_reader(mocker: MockerFixture, mock_path: Path, mock_read_file: ImzmlReadFile) -> None:
|
80 |
| - mock_reader = mocker.MagicMock(name="mock_reader", mzPrecision="d", intensityPrecision="i") |
81 |
| - mock_imzml_parser = mocker.patch("pyimzml.ImzMLParser.ImzMLParser") |
82 |
| - mock_imzml_parser.return_value.__enter__.return_value.portable_spectrum_reader.return_value = mock_reader |
| 81 | + mock_etree = mocker.patch("depiction.persistence.imzml.imzml_reader.ElementTree").return_value |
| 82 | + mock_parse_spectra = mocker.MagicMock(name="mock_parse_spectra", spec=ParseSpectra) |
| 83 | + construct_parse_spectra = mocker.patch( |
| 84 | + "depiction.persistence.imzml.imzml_reader.ParseSpectra", return_value=mock_parse_spectra |
| 85 | + ) |
| 86 | + c1 = mocker.MagicMock(name="c1", value="c1") |
| 87 | + c2 = mocker.MagicMock(name="c2", value="c2") |
| 88 | + f32 = mocker.MagicMock(name="f32", value="float32") |
| 89 | + f64 = mocker.MagicMock(name="f64", value="float64") |
| 90 | + mock_parse_spectra.parse.return_value = [ |
| 91 | + mocker.MagicMock( |
| 92 | + mz_arr=mocker.MagicMock(offset=1, encoded_length=2, data_type=f32, mz_compression=c1), |
| 93 | + int_arr=mocker.MagicMock(offset=3, encoded_length=4, data_type=f64, int_compression=c2), |
| 94 | + position=(5, 6), |
| 95 | + ), |
| 96 | + mocker.MagicMock( |
| 97 | + mz_arr=mocker.MagicMock(offset=6, encoded_length=7, data_type=f32, mz_compression=c1), |
| 98 | + int_arr=mocker.MagicMock(offset=8, encoded_length=9, data_type=f64, int_compression=c2), |
| 99 | + position=(10, 11), |
| 100 | + ), |
| 101 | + ] |
| 102 | + |
83 | 103 | reader = mock_read_file.get_reader()
|
84 |
| - mock_imzml_parser.assert_called_once_with(mock_path) |
85 | 104 | assert reader.imzml_path == Path(mock_read_file._path)
|
86 |
| - assert reader._mz_bytes == 8 |
87 |
| - assert reader._int_bytes == 4 |
| 105 | + assert reader._mz_arr_offsets == [1, 6] |
| 106 | + assert reader._mz_bytes == 4 |
| 107 | + assert reader._mz_arr_dtype == "float32" |
| 108 | + assert reader._int_bytes == 8 |
| 109 | + assert reader._int_arr_dtype == "float64" |
| 110 | + np.testing.assert_array_equal(reader._coordinates, np.array([[5, 6], [10, 11]])) |
| 111 | + |
| 112 | + construct_parse_spectra.assert_called_once_with(etree=mock_etree) |
88 | 113 |
|
89 | 114 |
|
90 | 115 | def test_n_spectra(mocker: MockerFixture, mock_read_file: ImzmlReadFile) -> None:
|
|
0 commit comments