|
1 | 1 | from functools import partial |
2 | 2 |
|
| 3 | +import numpy as np |
3 | 4 | import pytest |
4 | 5 | import unyt |
5 | 6 |
|
@@ -143,3 +144,46 @@ def _dimensionless_field(field, data): |
143 | 144 | ) |
144 | 145 | # check access |
145 | 146 | ds.all_data()["gas", "dimensionless_density"] |
| 147 | + |
| 148 | + |
| 149 | +def test_add_field_quick(): |
| 150 | + ds = fake_random_ds(16) |
| 151 | + |
| 152 | + # Test subtractions |
| 153 | + for field in ( |
| 154 | + -ds.fields.gas.density, |
| 155 | + -1 * ds.fields.gas.density, |
| 156 | + ds.fields.gas.density - 2 * ds.fields.gas.density, |
| 157 | + ds.fields.gas.density * (-1), |
| 158 | + ): |
| 159 | + ds.add_field(("gas", "-density"), field, force_override=True) |
| 160 | + np.testing.assert_allclose(ds.r["gas", "-density"], -ds.r["gas", "density"]) |
| 161 | + |
| 162 | + # Test additions |
| 163 | + for field in ( |
| 164 | + ds.fields.index.ones + 1, |
| 165 | + 1 + ds.fields.index.ones, |
| 166 | + ): |
| 167 | + ds.add_field(("index", "two"), field, force_override=True) |
| 168 | + np.testing.assert_allclose(ds.r["index", "two"], 2) |
| 169 | + |
| 170 | + # Test multiplications |
| 171 | + for field in (ds.fields.gas.density * 2, 2 * ds.fields.gas.density): |
| 172 | + ds.add_field(("gas", "twodensity"), field, force_override=True) |
| 173 | + np.testing.assert_allclose( |
| 174 | + ds.r["gas", "twodensity"], ds.r["gas", "density"] * 2 |
| 175 | + ) |
| 176 | + |
| 177 | + # Test divisions |
| 178 | + for field in (ds.fields.gas.density / 2, 0.5 * ds.fields.gas.density): |
| 179 | + ds.add_field(("gas", "halfdensity"), field, force_override=True) |
| 180 | + np.testing.assert_allclose( |
| 181 | + ds.r["gas", "halfdensity"], ds.r["gas", "density"] / 2 |
| 182 | + ) |
| 183 | + |
| 184 | + # Test right division |
| 185 | + for field in (1 / ds.fields.gas.density,): |
| 186 | + ds.add_field(("gas", "one_over_density"), field, force_override=True) |
| 187 | + np.testing.assert_allclose( |
| 188 | + ds.r["gas", "one_over_density"], 1 / ds.r["gas", "density"] |
| 189 | + ) |
0 commit comments