def test_spectrum_to_spectra(make_datasets): """ Import a spectrum into a spectrum """ spectrum, spectra, hsi, make_dataset_shape = make_datasets new_dataset = Spectra() new_dataset.data = spectrum assert new_dataset.size == spectrum.size np.testing.assert_array_equal(np.squeeze(new_dataset.data), spectrum)
def test_hsi_to_spectra(make_datasets): """ Import an hsi into spectra """ spectrum, spectra, hsi, make_dataset_shape = make_datasets new_dataset = Spectra() new_dataset.data = hsi assert new_dataset.size == hsi.size np.testing.assert_array_equal(hsi.reshape((-1, hsi.shape[-1])), new_dataset.data)
def test_spectra(): N = 101 data = np.dot(np.ones((10, 1)), np.linspace(0, 100, N)[None, :]) f = np.arange(N) spectra = Spectra(data=data, freq=f) np_testing.assert_allclose(spectra._data_idx_freq[0], spectra._data[..., 0]) # Note: _data_idx_freq is INCLUSIVE-- normal indexing is NOT # This the :11 and not 10 np_testing.assert_allclose(spectra._data_idx_freq[0:10], spectra._data[..., 0:11]) np_testing.assert_allclose(spectra._data_idx_freq[0.0:10.1:.1], spectra._data[..., 0:11]) np_testing.assert_allclose(spectra._data_idx_freq[0.0:10.1], spectra._data[..., 0:11]) np_testing.assert_allclose(spectra._data_idx_freq[10], spectra._data[..., 10]) np_testing.assert_allclose(spectra._data_idx_freq[[10, 11]], spectra._data[..., [10, 11]]) # Slice the spatial dimension as well: np_testing.assert_allclose(spectra._data_idx_freq[:, 0:10], spectra._data[..., 0:11]) np_testing.assert_allclose(spectra._data_idx_freq[:, 0.0:10.1:.1], spectra._data[..., 0:11]) np_testing.assert_allclose(spectra._data_idx_freq[:, 0.0:10.1], spectra._data[..., 0:11]) np_testing.assert_allclose(spectra._data_idx_freq[10, 11], spectra._data[..., [10, 11]]) np_testing.assert_allclose(spectra._data_idx_freq[:, 10], spectra._data[..., 10])
def test_spectrum_to_spectra_rng(make_datasets): """ Import spectrum into spectra -- defined range""" spectrum, spectra, hsi, make_dataset_shape = make_datasets rng = [10, 11] new_dataset = Spectra() new_dataset.freq.data = np.arange(spectra.shape[-1]) new_dataset.data = spectrum new_dataset.freq.op_list_pix = rng new_dataset.data = spectrum assert new_dataset.size == spectrum.size assert (new_dataset.data != 0).sum() == len(rng) np.testing.assert_almost_equal(np.squeeze(new_dataset.data[..., rng]), spectrum[rng])
def test_hsi_to_spectra_rng(make_datasets): """ Import an hsi into spectra -- defined range""" spectrum, spectra, hsi, make_dataset_shape = make_datasets rng = [10, 11] new_dataset = Spectra() new_dataset.freq.data = np.arange(spectra.shape[-1]) new_dataset.data = hsi new_dataset.freq.op_list_pix = rng new_dataset.data = hsi assert new_dataset.size == hsi.size assert (new_dataset.data != 0).sum() == len(rng) * np.prod(hsi.shape[:-1]) np.testing.assert_almost_equal(new_dataset.data[..., rng], hsi[..., rng].reshape((-1, len(rng))))
def test_hdf_import_spectra_to_spectra(hdf_dataset): """ Import a spectra into a spectra """ filename, fid, hdf_data_shape = hdf_dataset hdf_data_shape = np.array(hdf_data_shape) dname = 'spectra' dataset = Spectra() out = hdf_import_data('.', filename, dname, output_cls_instance=dataset) assert out is True assert dataset.size == hdf_data_shape[1:].prod() np.testing.assert_array_equal(dataset.data, fid[dname].value)
def test_reshape_axes_static(make_datasets): """ Test reshape axes static method """ spectrum, spectra, hsi, make_dataset_shape = make_datasets Spectra._reshape_axes(shape=hsi.shape, spectral_axis=-1) == (-1, hsi.shape[-1]) Spectra._reshape_axes(shape=spectra.shape, spectral_axis=-1) == (-1, spectra.shape[-1]) Spectra._reshape_axes(shape=spectrum.shape, spectral_axis=-1) == (-1, spectrum.shape[-1])
def test_mean_axes_static(): """ Ensure mean_axes_static raises an error""" with pytest.raises(NotImplementedError): Spectra._mean_axes()