def test_make_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 = make_field(arr) expected = { "name": "cats", "type": "any", "constraints": { "enum": data }, "ordered": ordered } self.assertEqual(result, expected) arr = pd.CategoricalIndex(data, ordered=ordered, name='cats') result = make_field(arr) expected = { "name": "cats", "type": "any", "constraints": { "enum": data }, "ordered": ordered } self.assertEqual(result, expected)
def test_make_field_float(self): data = [1., 2., 3.] kinds = [pd.Series(data, name='name'), pd.Index(data, name='name')] for kind in kinds: result = make_field(kind) expected = {"name": "name", "type": 'number'} self.assertEqual(result, expected)
def test_make_field_int(self): data = [1, 2, 3] kinds = [pd.Series(data, name='name'), pd.Index(data, name='name')] for kind in kinds: result = make_field(kind) expected = {"name": "name", "type": 'integer'} self.assertEqual(result, expected)
def test_make_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 = make_field(arr) expected = {"name": "cats", "type": "any", "constraints": {"enum": data}, "ordered": ordered} self.assertEqual(result, expected) arr = pd.CategoricalIndex(data, ordered=ordered, name='cats') result = make_field(arr) expected = {"name": "cats", "type": "any", "constraints": {"enum": data}, "ordered": ordered} self.assertEqual(result, expected)
def test_make_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 = make_field(kind) expected = {"name": "values", "type": 'datetime'} self.assertEqual(result, expected) kinds = [pd.Series(pd.to_datetime(data, utc=True), name='values'), pd.to_datetime(data, utc=True)] for kind in kinds: result = make_field(kind) expected = {"name": "values", "type": 'datetime', "tz": "UTC"} self.assertEqual(result, expected) arr = pd.period_range('2016', freq='A-DEC', periods=4) result = make_field(arr) expected = {"name": "values", "type": 'datetime', "freq": "A-DEC"} self.assertEqual(result, expected)