def test_convert_pandas_type_to_json_field_categorical(self): data = ['a', 'b', 'c'] ordereds = [True, False] for ordered in ordereds: arr = pd.Series(pd.Categorical(data, ordered=ordered), name='cats') result = convert_pandas_type_to_json_field(arr) expected = { "name": "cats", "type": "any", "constraints": { "enum": data }, "ordered": ordered } assert result == expected arr = pd.CategoricalIndex(data, ordered=ordered, name='cats') result = convert_pandas_type_to_json_field(arr) expected = { "name": "cats", "type": "any", "constraints": { "enum": data }, "ordered": ordered } assert result == expected
def test_convert_pandas_type_to_json_field_float(self): data = [1., 2., 3.] kinds = [pd.Series(data, name='name'), pd.Index(data, name='name')] for kind in kinds: result = convert_pandas_type_to_json_field(kind) expected = {"name": "name", "type": 'number'} assert result == expected
def test_convert_pandas_type_to_json_field_datetime( self, dt_args, extra_exp, wrapper): data = [1., 2., 3.] data = pd.to_datetime(data, **dt_args) if wrapper is pd.Series: data = pd.Series(data, name='values') result = convert_pandas_type_to_json_field(data) expected = {"name": "values", "type": 'datetime'} expected.update(extra_exp) assert result == expected
def test_convert_pandas_type_to_json_field_datetime(self, dt_args, extra_exp, wrapper): data = [1., 2., 3.] data = pd.to_datetime(data, **dt_args) if wrapper is pd.Series: data = pd.Series(data, name='values') result = convert_pandas_type_to_json_field(data) expected = {"name": "values", "type": 'datetime'} expected.update(extra_exp) assert result == expected
def test_convert_pandas_type_to_json_field_categorical(self, kind, ordered): data = ['a', 'b', 'c'] if kind is pd.Categorical: arr = pd.Series(kind(data, ordered=ordered), name='cats') elif kind is pd.CategoricalIndex: arr = kind(data, ordered=ordered, name='cats') result = convert_pandas_type_to_json_field(arr) expected = {"name": "cats", "type": "any", "constraints": {"enum": data}, "ordered": ordered} assert result == expected
def test_convert_pandas_type_to_json_field_categorical(self, kind, ordered): data = ['a', 'b', 'c'] if kind is pd.Categorical: arr = pd.Series(kind(data, ordered=ordered), name='cats') elif kind is pd.CategoricalIndex: arr = kind(data, ordered=ordered, name='cats') result = convert_pandas_type_to_json_field(arr) expected = {"name": "cats", "type": "any", "constraints": {"enum": data}, "ordered": ordered} assert result == expected
def test_convert_pandas_type_to_json_field_datetime(self): data = [1., 2., 3.] kinds = [ pd.Series(pd.to_datetime(data), name='values'), pd.to_datetime(data) ] for kind in kinds: result = convert_pandas_type_to_json_field(kind) expected = {"name": "values", "type": 'datetime'} assert result == expected kinds = [ pd.Series(pd.to_datetime(data, utc=True), name='values'), pd.to_datetime(data, utc=True) ] for kind in kinds: result = convert_pandas_type_to_json_field(kind) expected = {"name": "values", "type": 'datetime', "tz": "UTC"} assert result == expected arr = pd.period_range('2016', freq='A-DEC', periods=4) result = convert_pandas_type_to_json_field(arr) expected = {"name": "values", "type": 'datetime', "freq": "A-DEC"} assert result == expected
def test_convert_pandas_type_to_json_period_range(self): arr = pd.period_range('2016', freq='A-DEC', periods=4) result = convert_pandas_type_to_json_field(arr) expected = {"name": "values", "type": 'datetime', "freq": "A-DEC"} assert result == expected
def test_convert_pandas_type_to_json_field_float(self, kind): data = [1., 2., 3.] result = convert_pandas_type_to_json_field(kind(data, name='name')) expected = {"name": "name", "type": "number"} assert result == expected
def test_convert_pandas_type_to_json_field_int(self, kind): data = [1, 2, 3] result = convert_pandas_type_to_json_field(kind(data, name='name')) expected = {"name": "name", "type": "integer"} assert result == expected
def test_convert_pandas_type_to_json_period_range(self): arr = pd.period_range('2016', freq='A-DEC', periods=4) result = convert_pandas_type_to_json_field(arr) expected = {"name": "values", "type": 'datetime', "freq": "A-DEC"} assert result == expected
def test_convert_pandas_type_to_json_field_float(self, kind): data = [1., 2., 3.] result = convert_pandas_type_to_json_field(kind(data, name='name')) expected = {"name": "name", "type": "number"} assert result == expected
def test_convert_pandas_type_to_json_field_int(self, kind): data = [1, 2, 3] result = convert_pandas_type_to_json_field(kind(data, name='name')) expected = {"name": "name", "type": "integer"} assert result == expected