def transpose(obj, *order): if isinstance(order[0], tuple): order = order[0] if isinstance(obj, np.ndarray): newobj = transposeND(obj, order) elif isinstance(obj, xr.DataArray): newobj = transposeDA(obj, order) elif isinstance(obj, FloatArray): tmp = transposeND(obj.array, order) newobj = FloatArray(tmp) else: raise TypeError("Can't understand datatype of obj.") return newobj
def subset(obj, size, error=.005): if isinstance(obj, np.ndarray): subs = SubsetSlices(obj.shape, size, error) result = obj[subs] elif isinstance(obj, xr.DataArray): subs = SubsetSlices(obj.values.shape, size, error) slices = {x: y for x, y in zip(obj.dims, subs)} result = obj.isel(**slices) elif isinstance(obj, FloatArray): subs = SubsetSlices(obj.array.shape, size, error) result = FloatArray(obj.array[subs]) else: raise TypeError("Can't understand type.") return result
def test_floatarray_with_other_object(value): """Comparison with arbitary types.""" with pytest.raises(TypeError) as err: _ = FloatArray(ARR) == value assert "Comparison failed" in str(err)
def test_floatarray_with_npndarray(): """Comparison with related values.""" assert FloatArray(ARR) == ARR
def test_equal_floatarray(): """Comparison with itself.""" assert FloatArray(ARR) == FloatArray(ARR)
def test_value_error(value): """Wrong input types.""" with pytest.raises(TypeError) as err: FloatArray(value) assert "Expected np.nd" in str(err)
def test_raise_error(form): """Wrong np.dtypes of array.""" with pytest.raises(TypeError) as err: FloatArray(ARR.astype(form)) assert "Expected np.nd" in str(err)
def test_importtype(): """"Correct initialisation.""" assert isinstance(FloatArray(ARR), FloatArray)
# coding: utf-8 """Testing mapper functions.""" from pasc.modifier import mapper from pasc.objects.floatarray import FloatArray from pasc.objects.integerarray import IntegerArray import numpy as np import pytest MAPPER = [ mapper.Lindstrom, mapper.RawBinary, ] INPUTGROUP_VALID = [ FloatArray(np.arange(24, dtype=np.float32)), ] INPUTGROUP_INVALID = [ IntegerArray(np.arange(24, dtype=np.int32)), ] @pytest.mark.parametrize('mapmod', MAPPER) @pytest.mark.parametrize('inputgroup', INPUTGROUP_VALID) def test_map_function_output(inputgroup, mapmod): """Result of Mapper is an IntegerArray using map method.""" mapfunc = mapmod.map(inputgroup) assert isinstance(mapfunc, IntegerArray)
def to_floatarray(self, var): dataarray = getattr(self.data, var) return FloatArray(dataarray.values)