def test_exclude_nan(): test_array = np.nan * np.ones((10, 10, 10)) test_array[1, 1, :] = 1 data = dict(density=test_array) ds = load_uniform_grid(data, test_array.shape, length_unit="cm", nprocs=1) ad = ds.all_data() no_nan_ds = ad.exclude_nan("density") assert_equal(no_nan_ds["density"], np.array(np.ones(10)))
def test_dimensionless_field_units(): Z = np.random.uniform(size=(32,32,32)) d = np.random.uniform(size=(32,32,32)) data = {"density": d, "metallicity": Z} ds = load_uniform_grid(data, (32,32,32)) dd = ds.all_data() assert_equal(Z.max(), dd["metallicity"].max())
def test_equal(): test_array = np.ones((10, 10, 10)) test_array[1, 1, :] = 2.0 test_array[2, 1, :] = 3.0 data = dict(density=test_array) ds = load_uniform_grid(data, test_array.shape, length_unit="cm", nprocs=1) ad = ds.all_data() no_ones = ad.exclude_equal("density", 1.0) assert np.all(no_ones["density"] != 1.0) only_ones = ad.include_equal("density", 1.0) assert np.all(only_ones["density"] == 1.0)
def test_inside_outside(): test_array = np.ones((10, 10, 10)) test_array[1, 1, :] = 2.0 test_array[2, 1, :] = 3.0 data = dict(density=test_array) ds = load_uniform_grid(data, test_array.shape, length_unit="cm", nprocs=1) ad = ds.all_data() only_ones_and_twos = ad.include_inside("density", 0.9, 2.1) assert np.all(only_ones_and_twos["density"] != 3.0) assert len(only_ones_and_twos["density"]) == 990 only_ones_and_twos = ad.exclude_outside("density", 0.9, 2.1) assert len(only_ones_and_twos["density"]) == 990 assert np.all(only_ones_and_twos["density"] != 3.0) only_threes = ad.include_outside("density", 0.9, 2.1) assert np.all(only_threes["density"] == 3) assert len(only_threes["density"]) == 10 only_threes = ad.include_outside("density", 0.9, 2.1) assert np.all(only_threes["density"] == 3) assert len(only_threes["density"]) == 10 # Repeat, but convert units to g/m**3 only_ones_and_twos = ad.include_inside("density", 0.9e6, 2.1e6, "g/m**3") assert np.all(only_ones_and_twos["density"] != 3.0) assert len(only_ones_and_twos["density"]) == 990 only_ones_and_twos = ad.exclude_outside("density", 0.9e6, 2.1e6, "g/m**3") assert len(only_ones_and_twos["density"]) == 990 assert np.all(only_ones_and_twos["density"] != 3.0) only_threes = ad.include_outside("density", 0.9e6, 2.1e6, "g/m**3") assert np.all(only_threes["density"] == 3) assert len(only_threes["density"]) == 10 only_threes = ad.include_outside("density", 0.9e6, 2.1e6, "g/m**3") assert np.all(only_threes["density"] == 3) assert len(only_threes["density"]) == 10
def load_field_grid_mismatch(): d = np.random.uniform(size=(32, 32, 32)) t = np.random.uniform(size=(32, 32, 32)) data = {"density": d, "temperature": t} load_uniform_grid(data, (32,64,32))