def test_parse_units_xarray_no_copy(): in_ = xr.DataArray([4, 3, 2, 1], attrs={'units': 'm'}) actual = process_unit_input(in_, copy=False) desired = unyt.unyt_array([4, 3, 2, 1], 'm') assert actual.base is in_.values assert_allclose_units(actual, desired)
def test_parse_units_xarray_no_units(): in_ = xr.DataArray([4, 3, 2, 1]) with pytest.raises(ValueError): process_unit_input(in_)
def test_parse_units_no_copy_array(): in_ = np.array([1, 2, 3, 4]) actual = process_unit_input(in_, 'ft', copy=False) desired = unyt.unyt_array([1, 2, 3, 4], 'ft') assert actual.base is in_ assert_allclose_units(actual, desired)
def test_parse_units_xarray(): in_ = xr.DataArray([1, 2, 3, 4], attrs={'units': 'mm'}) actual = process_unit_input(in_) desired = unyt.unyt_array([1, 2, 3, 4], 'mm') assert_allclose_units(actual, desired)
def test_parse_units_already_unyt(): in_ = unyt.unyt_array([1, 2, 3, 4], 'ft') out_ = process_unit_input(in_) assert_allclose_units(in_, out_)
def test_parse_units_already_unyt_no_copy(): in_ = unyt.unyt_array([1, 2, 3, 4], 'ft') out_ = process_unit_input(in_, copy=False) assert in_ is out_
def test_parse_units_convert_success(): desired = unyt.unyt_array([12, 24, 36, 48], 'inch') actual = process_unit_input(([1, 2, 3, 4], 'ft'), default_units='inch', convert=True) assert_allclose_units(actual, desired)
def test_parse_units_bad_tuple(): with pytest.raises(ValueError): process_unit_input(([1, 2, 3, 4], ))
def test_parse_units_check_dims_fail(): with pytest.raises(UnitConversionError): process_unit_input(([1, 2, 3, 4], 'ft'), default_units='kip', check_dims=True)
def test_parse_units_check_dims_success(): desired = unyt.unyt_array([1, 2, 3, 4], 'ft') actual = process_unit_input(([1, 2, 3, 4], 'ft'), default_units='inch', check_dims=True) assert_allclose_units(actual, desired)
def test_parse_units_with_default(): actual = process_unit_input([1, 2, 3, 4], 'ft') desired = unyt.unyt_array([1, 2, 3, 4], 'ft') assert_allclose_units(actual, desired)
def test_parse_units_no_default(): with pytest.raises(ValueError): process_unit_input([1, 2, 3, 4])
def test_parse_units_xarray_no_accept_bad_casing(): in_ = xr.DataArray([4, 3, 2, 1], attrs={'Units': 'm'}) with pytest.raises(ValueError): process_unit_input(in_)