|
| 1 | +import numpy as np |
| 2 | +import pytest |
| 3 | +import yt |
| 4 | + |
| 5 | +from yt_idv.cameras.trackball_camera import TrackballCamera |
| 6 | +from yt_idv.scene_components.blocks import BlockRendering |
| 7 | +from yt_idv.scene_data.block_collection import BlockCollection |
| 8 | +from yt_idv.scene_graph import SceneGraph |
| 9 | + |
| 10 | + |
| 11 | +@pytest.fixture() |
| 12 | +def ds_yt_ugrid(): |
| 13 | + # create some data |
| 14 | + shp = (8, 8, 8) |
| 15 | + data = {"constant_field": np.full(shape=shp, fill_value=5.0)} |
| 16 | + ds = yt.load_uniform_grid(data, shp, length_unit=1) |
| 17 | + return ds |
| 18 | + |
| 19 | + |
| 20 | +def test_block_collection_normalization(osmesa_empty_rc, ds_yt_ugrid): |
| 21 | + |
| 22 | + block_coll: BlockCollection = BlockCollection( |
| 23 | + data_source=ds_yt_ugrid.all_data(), |
| 24 | + min_val=0.0, |
| 25 | + max_val=10.0, |
| 26 | + compute_min_max=False, |
| 27 | + always_normalize=True, |
| 28 | + ) |
| 29 | + block_coll.add_data(("stream", "constant_field"), no_ghost=True) |
| 30 | + |
| 31 | + assert np.allclose(block_coll.texture_objects[0].data, 0.5) |
| 32 | + |
| 33 | + |
| 34 | +def test_block_rendering_cmap_norms(osmesa_empty_rc, ds_yt_ugrid, image_store): |
| 35 | + |
| 36 | + block_coll: BlockCollection = BlockCollection( |
| 37 | + data_source=ds_yt_ugrid.all_data(), |
| 38 | + min_val=0.0, |
| 39 | + max_val=10.0, |
| 40 | + compute_min_max=False, |
| 41 | + always_normalize=True, |
| 42 | + ) |
| 43 | + block_coll.add_data(("stream", "constant_field"), no_ghost=True) |
| 44 | + |
| 45 | + block_rendering: BlockRendering = BlockRendering( |
| 46 | + data=block_coll, |
| 47 | + fixed_cmap_min=0.2, |
| 48 | + fixed_cmap_max=0.8, |
| 49 | + cmap_log=False, |
| 50 | + ) |
| 51 | + |
| 52 | + block_rendering._reset_cmap_bounds() |
| 53 | + |
| 54 | + assert block_rendering.cmap_min == 0.2 |
| 55 | + assert block_rendering.cmap_max == 0.8 |
| 56 | + |
| 57 | + block_rendering.fixed_cmap_min = 0.0 |
| 58 | + block_rendering.fixed_cmap_max = 1.0 |
| 59 | + block_rendering._reset_cmap_bounds() |
| 60 | + assert block_rendering.cmap_min == 0.0 |
| 61 | + assert block_rendering.cmap_max == 1.0 |
| 62 | + |
| 63 | + c = TrackballCamera.from_dataset(ds_yt_ugrid) |
| 64 | + osmesa_empty_rc.scene = SceneGraph(camera=c) |
| 65 | + osmesa_empty_rc.scene.data_objects.append(block_coll) |
| 66 | + osmesa_empty_rc.scene.components.append(block_rendering) |
| 67 | + |
| 68 | + image_store(osmesa_empty_rc) |
0 commit comments