From e0ff4ddd89bde97deeedb461783d0479e4da9ce9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Robert?= Date: Sun, 6 Aug 2023 20:05:23 +0200 Subject: [PATCH] BUG: fix converting a dimensionless array with unyt_array.to_astropy --- unyt/array.py | 6 +++++- unyt/tests/test_unyt_array.py | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/unyt/array.py b/unyt/array.py index ef06fb41..913850bf 100644 --- a/unyt/array.py +++ b/unyt/array.py @@ -1313,7 +1313,11 @@ def to_astropy(self, **kwargs): >>> data.to_astropy() """ - return self.value * _astropy.units.Unit(str(self.units), **kwargs) + if self.units.is_dimensionless: + s_units = "" + else: + s_units = str(self.units) + return self.value * _astropy.units.Unit(s_units, **kwargs) @classmethod def from_pint(cls, arr, unit_registry=None): diff --git a/unyt/tests/test_unyt_array.py b/unyt/tests/test_unyt_array.py index e61db46d..8ab0af9a 100644 --- a/unyt/tests/test_unyt_array.py +++ b/unyt/tests/test_unyt_array.py @@ -1402,6 +1402,17 @@ def test_astropy(): assert_equal(yt_quan, unyt_quantity.from_astropy(yt_quan.to_astropy())) +def test_astropy_dimensionless(): + # see https://github.com/yt-project/unyt/issues/436 + pytest.importorskip("astropy") + + arr = unyt_array([1, 2, 3], "") + ap_arr = np.array([1, 2, 3]) * _astropy.units.Unit("") + + assert_array_equal(ap_arr, arr.to_astropy()) + assert_array_equal(arr, unyt_array.from_astropy(ap_arr)) + + def test_pint(): pytest.importorskip("pint")