def test_feature_table_from_layer_with_unordered_pd_series_features(): features = { 'a': pd.Series([1, 3], index=[3, 4]), 'b': pd.Series([7.5, -2.1], index=[1, 2]), } feature_table = _FeatureTable.from_layer(features=features, num_data=2) expected = pd.DataFrame({'a': [1, 3], 'b': [7.5, -2.1]}, index=[0, 1]) pd.testing.assert_frame_equal(feature_table.values, expected)
def test_feature_table_from_layer_with_choices_only(): property_choices = { 'class': np.array(['building', 'person', 'sky']), } feature_table = _FeatureTable.from_layer(property_choices=property_choices, num_data=0) features = feature_table.values assert features.shape == (0, 1) class_column = features['class'] assert isinstance(class_column.dtype, pd.CategoricalDtype) np.testing.assert_array_equal(class_column.dtype.categories, property_choices['class']) defaults = feature_table.defaults assert defaults.shape == (1, 1) assert defaults['class'][0] == property_choices['class'][0]
def test_feature_table_from_layer_with_properties_and_num_data(): properties = { 'class': np.array(['sky', 'person', 'building', 'person']), 'confidence': np.array([0.2, 0.5, 1, 0.8]), } feature_table = _FeatureTable.from_layer(properties=properties, num_data=4) features = feature_table.values assert features.shape == (4, 2) np.testing.assert_array_equal(features['class'], properties['class']) np.testing.assert_array_equal(features['confidence'], properties['confidence']) defaults = feature_table.defaults assert defaults.shape == (1, 2) assert defaults['class'][0] == properties['class'][-1] assert defaults['confidence'][0] == properties['confidence'][-1]
def test_feature_table_from_layer_with_custom_index_and_num_data(): features = pd.DataFrame({'a': [1, 3], 'b': [7.5, -2.1]}, index=[1, 2]) feature_table = _FeatureTable.from_layer(features=features, num_data=2) expected = features.reset_index(drop=True) pd.testing.assert_frame_equal(feature_table.values, expected)
def test_feature_table_from_layer_with_properties_as_dataframe(): feature_table = _FeatureTable.from_layer(properties=TEST_FEATURES) pd.testing.assert_frame_equal(feature_table.values, TEST_FEATURES)
def test_feature_table_from_layer_with_num_data_only(): feature_table = _FeatureTable.from_layer(num_data=5) assert feature_table.values.shape == (5, 0) assert feature_table.defaults.shape == (1, 0)
def test_feature_table_from_layer_with_none_then_empty(): feature_table = _FeatureTable.from_layer(features=None) assert feature_table.values.shape == (0, 0)