def test_get_value_3d_nd( ray_start, ray_direction, expected_value, expected_index ): vertices = np.array( [ [0, 3, 0, 0], [0, 3, 0, 3], [0, 3, 3, 0], [0, 5, 0, 0], [0, 5, 0, 3], [0, 5, 3, 0], [0, 2, 50, 50], [0, 2, 50, 100], [0, 2, 100, 50], ] ) faces = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) values = np.array([1, 2, 3, 1, 2, 3, 1, 2, 3]) surface_layer = Surface((vertices, faces, values)) surface_layer._slice_dims([0, 0, 0, 0], ndisplay=3) value, index = surface_layer.get_value( position=ray_start, view_direction=ray_direction, dims_displayed=[1, 2, 3], world=False, ) assert index == expected_index np.testing.assert_allclose(value, expected_value)
def test_random_4D_surface(): """Test instantiating Surface layer with random 4D data.""" np.random.seed(0) vertices = np.random.random((10, 4)) faces = np.random.randint(10, size=(6, 3)) values = np.random.random(10) data = (vertices, faces, values) layer = Surface(data) assert layer.ndim == 4 assert np.all([np.all(ld == d) for ld, d in zip(layer.data, data)]) assert layer._data_view.shape[1] == 2 assert layer._view_vertex_values.ndim == 1 layer._slice_dims(ndisplay=3) assert layer._data_view.shape[1] == 3 assert layer._view_vertex_values.ndim == 1
def test_random_3D_multitimeseries_surface(): """Test instantiating Surface layer with random 3D multitimeseries data.""" np.random.seed(0) vertices = np.random.random((10, 3)) faces = np.random.randint(10, size=(6, 3)) values = np.random.random((16, 22, 10)) data = (vertices, faces, values) layer = Surface(data) assert layer.ndim == 5 assert np.all([np.all(ld == d) for ld, d in zip(layer.data, data)]) assert layer._data_view.shape[1] == 2 assert layer._view_vertex_values.ndim == 1 assert layer.extent.data[1][0] == 16 assert layer.extent.data[1][1] == 22 layer._slice_dims(ndisplay=3) assert layer._data_view.shape[1] == 3 assert layer._view_vertex_values.ndim == 1
def test_changing_surface(): """Test changing surface layer data""" np.random.seed(0) vertices = np.random.random((10, 2)) faces = np.random.randint(10, size=(6, 3)) values = np.random.random(10) data = (vertices, faces, values) layer = Surface(data) vertices = np.random.random((10, 3)) faces = np.random.randint(10, size=(6, 3)) values = np.random.random(10) data = (vertices, faces, values) layer.data = data assert layer.ndim == 3 assert np.all([np.all(ld == d) for ld, d in zip(layer.data, data)]) assert layer._data_view.shape[1] == 2 assert layer._view_vertex_values.ndim == 1 layer._slice_dims(ndisplay=3) assert layer._data_view.shape[1] == 3 assert layer._view_vertex_values.ndim == 1
def test_random_3D_timeseries_surface(): """Test instantiating Surface layer with random 3D timeseries data.""" np.random.seed(0) vertices = np.random.random((10, 3)) faces = np.random.randint(10, size=(6, 3)) values = np.random.random((22, 10)) data = (vertices, faces, values) layer = Surface(data) assert layer.ndim == 4 assert np.all([np.all(ld == d) for ld, d in zip(layer.data, data)]) assert layer._data_view.shape[1] == 2 assert layer._view_vertex_values.ndim == 1 assert layer.extent.data[1][0] == 22 layer._slice_dims(ndisplay=3) assert layer._data_view.shape[1] == 3 assert layer._view_vertex_values.ndim == 1 # If a values axis is made to be a displayed axis then no data should be # shown layer._slice_dims(ndisplay=3, order=[3, 0, 1, 2]) assert len(layer._data_view) == 0