def test_copy(): from eva.dataframe import DataFrame df = DataFrame( DATA, dimensions=['id', 'type', 'code'], metrics=['value_1', 'value_2'], ) assert isinstance(df.copy(), DataFrame) assert (df.copy().values == df.values).all().all() assert df.copy().dimensions == df.dimensions assert df.copy().metrics == df.metrics
def test_values(): from eva.dataframe import DataFrame df = DataFrame( DATA, dimensions=['id', 'type', 'code'], metrics=['value_1', 'value_2'], ) df.metrics = 'value_1' assert df.metrics == ['value_1'] df.metrics = ['value_2'] assert df.metrics == ['value_2']
def test_import_data(): from eva.dataframe import DataFrame with pytest.raises(AssertionError, message='Dimensions/values is not well-defined.'): DataFrame(DATA) with pytest.raises(AssertionError, message='Dimensions/values is not well-defined.'): DataFrame(DATA, dimensions='id', metrics='value_1') DataFrame( DATA, dimensions=['id', 'type', 'code'], metrics=['value_1', 'value_2'], )
def test_native_dataframe(): from eva.dataframe import DataFrame df = DataFrame( DATA, dimensions=['id', 'type', 'code'], metrics=['value_1', 'value_2'], ) native_dataframe = pd.DataFrame(DATA) assert (df.index == native_dataframe.index).all() assert (df.columns == native_dataframe.columns).all() assert df.shape == native_dataframe.shape
def test_table_view(): from eva.dataframe import DataFrame df = DataFrame( DATA, dimensions=['id', 'type', 'code'], metrics=['value_1', 'value_2'], ) table_view = df.table_view assert set(table_view.columns) == { 'id', 'type', 'code', 'timestamp', 'delta', 'value_1', 'value_2' } assert (table_view.index == pd.RangeIndex(len(table_view))).all()
def test_matrix_view(): from eva.dataframe import DataFrame df = DataFrame( DATA, dimensions=['id', 'type', 'code'], metrics=['value_1', 'value_2'], ) matrix_view = df.matrix_view assert list( matrix_view.columns.names) == [None, 'id', 'type', 'code', 'delta'] assert matrix_view.index.name == 'timestamp' assert set( matrix_view.columns.get_level_values(0)) == {'value_1', 'value_2'}