def test_destructors() -> None: def gen_values() -> Iterator[Dict[str, np.ndarray]]: yield {'x': np.arange(6)} yield {'y': np.arange(6)} t = Tafra(gen_values()) check_tafra(t) t = build_tafra() t = t.update_dtypes({'x': 'float'}) t.data['x'][2] = np.nan check_tafra(t) _ = tuple(t.to_records()) _ = tuple(t.to_records(columns='x')) _ = tuple(t.to_records(columns=['x'])) _ = tuple(t.to_records(columns=['x', 'y'])) _ = tuple(t.to_records(cast_null=False)) _ = tuple(t.to_records(columns='x', cast_null=False)) _ = tuple(t.to_records(columns=['x'], cast_null=False)) _ = tuple(t.to_records(columns=['x', 'y'], cast_null=False)) _ = t.to_list() _ = t.to_list(columns='x') _ = t.to_list(columns=['x']) _ = t.to_list(columns=['x', 'y']) _ = t.to_list(inner=True) _ = t.to_list(columns='x', inner=True) _ = t.to_list(columns=['x'], inner=True) _ = t.to_list(columns=['x', 'y'], inner=True) _ = t.to_tuple() _ = t.to_tuple(columns='x') _ = t.to_tuple(columns=['x']) _ = t.to_tuple(columns=['x', 'y']) _ = t.to_tuple(inner=True) _ = t.to_tuple(columns='x', inner=True) _ = t.to_tuple(columns=['x'], inner=True) _ = t.to_tuple(columns=['x', 'y'], inner=True) _ = t.to_array() _ = t.to_array(columns='x') _ = t.to_array(columns=['x']) _ = t.to_array(columns=['x', 'y']) _ = t.to_pandas() _ = t.to_pandas(columns='x') _ = t.to_pandas(columns=['x']) _ = t.to_pandas(columns=['x', 'y']) filepath = Path('test/test_to_csv.csv') t.to_csv(filepath) t.to_csv(filepath, columns='x') t.to_csv(filepath, columns=['x']) t.to_csv(filepath, columns=['x', 'y'])
def check_tafra(t: Tafra, check_rows: bool = True) -> bool: assert len(t._data) == len(t._dtypes) for c in t.columns: assert isinstance(t[c], np.ndarray) assert isinstance(t.data[c], np.ndarray) assert isinstance(t._data[c], np.ndarray) assert isinstance(t.dtypes[c], str) assert isinstance(t._dtypes[c], str) if check_rows: assert t._rows == len(t._data[c]) pd.Series(t._data[c]) columns = [c for c in t.columns][:-1] _ = t.to_records() _ = t.to_records(columns=columns) _ = t.to_list() _ = t.to_list(columns=columns) _ = t.to_list(inner=True) _ = t.to_list(columns=columns, inner=True) _ = t.to_tuple() _ = t.to_tuple(columns=columns) _ = t.to_tuple(name=None) _ = t.to_tuple(name='tf') _ = t.to_tuple(columns=columns, name=None) _ = t.to_tuple(columns=columns, name='tf') _ = t.to_tuple(inner=True) _ = t.to_tuple(inner=True, name=None) _ = t.to_tuple(inner=True, name='tf') _ = t.to_tuple(columns=columns, inner=True) _ = t.to_tuple(columns=columns, inner=True, name=None) _ = t.to_tuple(columns=columns, inner=True, name='tf') _ = t.to_array() _ = t.to_array(columns=columns) df = t.to_pandas() df = t.to_pandas(columns=columns) assert isinstance(df, pd.DataFrame) write_path = Path('test/test_to_csv.csv') t.to_csv(write_path) # t.to_csv(write_path, columns=columns) return True
def check_tafra(t: Tafra) -> bool: assert len(t._data) == len(t._dtypes) for c in t.columns: assert isinstance(t[c], np.ndarray) assert isinstance(t.data[c], np.ndarray) assert isinstance(t._data[c], np.ndarray) assert isinstance(t.dtypes[c], str) assert isinstance(t._dtypes[c], str) assert t._rows == len(t._data[c]) pd.Series(t._data[c]) _ = t.to_records() _ = t.to_list() _ = t.to_list() pd.DataFrame(t._data) return True
def test_constructions() -> None: with pytest.raises(TypeError) as e: t = Tafra() # type: ignore # noqa with pytest.raises(ValueError) as e: t = Tafra({}) # type: ignore t = Tafra({'x': None}) check_tafra(t) t = Tafra({'x': Decimal('1.23456')}) check_tafra(t) t = Tafra({'x': np.array(1)}) check_tafra(t) t = Tafra({'x': np.array([1])}) check_tafra(t) t = Tafra({'x': [True, False]}) check_tafra(t) t = Tafra({'x': 'test'}) check_tafra(t) t.update_dtypes_inplace({'x': 'O'}) check_tafra(t) t = Tafra(enumerate(np.arange(6))) check_tafra(t) with pytest.raises(ValueError) as e: t = Tafra({'x': np.array([1, 2]), 'y': np.array([3., 4., 5.])}) def gen_values() -> Iterator[Dict[str, np.ndarray]]: yield {'x': np.arange(6)} yield {'y': np.arange(6)} t = Tafra(gen_values()) check_tafra(t) t = build_tafra() t = t.update_dtypes({'x': 'float'}) t.data['x'][2] = np.nan check_tafra(t) _ = tuple(t.to_records()) _ = tuple(t.to_records(columns='x')) _ = tuple(t.to_records(columns=['x'])) _ = tuple(t.to_records(columns=['x', 'y'])) _ = tuple(t.to_records(cast_null=False)) _ = tuple(t.to_records(columns='x', cast_null=False)) _ = tuple(t.to_records(columns=['x'], cast_null=False)) _ = tuple(t.to_records(columns=['x', 'y'], cast_null=False)) _ = t.to_list() _ = t.to_list(columns='x') _ = t.to_list(columns=['x']) _ = t.to_list(columns=['x', 'y']) _ = t.to_list(inner=True) _ = t.to_list(columns='x', inner=True) _ = t.to_list(columns=['x'], inner=True) _ = t.to_list(columns=['x', 'y'], inner=True) _ = t.to_array() _ = t.to_array(columns='x') _ = t.to_array(columns=['x']) _ = t.to_array(columns=['x', 'y']) t = build_tafra() df = pd.DataFrame(t.data) _ = Tafra.from_series(df['x']) check_tafra(_) _ = Tafra.from_dataframe(df) check_tafra(_) _ = Tafra.as_tafra(df) check_tafra(_) _ = Tafra.as_tafra(df['x']) check_tafra(_) _ = Tafra.as_tafra(t) check_tafra(_) _ = Tafra.as_tafra({'x': np.array(1)}) check_tafra(_) _ = Tafra.from_series(Series()) check_tafra(_) _ = Tafra.as_tafra(Series()) check_tafra(_) _ = Tafra.from_dataframe(DataFrame()) # type: ignore check_tafra(_) _ = Tafra.as_tafra(DataFrame()) check_tafra(_) with pytest.raises(TypeError) as e: _ = Tafra(np.arange(6)) with pytest.raises(TypeError) as e: _ = Tafra.as_tafra(np.arange(6))