def test_add_bb_feature_invalid_df_columns(self):
        A = read_csv_metadata(path_a)
        B = read_csv_metadata(path_b, key='ID')

        def bb_fn(ltuple, rtuple):
            return 1.0

        add_blackbox_feature(pd.DataFrame(), 'test', bb_fn)
    def test_add_bb_feature_invalid_df_columns(self):
        A = read_csv_metadata(path_a)
        B = read_csv_metadata(path_b, key='ID')

        def bb_fn(ltuple, rtuple):
            return 1.0


        add_blackbox_feature(pd.DataFrame(), 'test', bb_fn)
    def test_add_bb_feature_name_already_present(self):
        A = read_csv_metadata(path_a)
        B = read_csv_metadata(path_b, key='ID')
        feature_table = create_feature_table()
        len1 = len(feature_table)
        def bb_fn(ltuple, rtuple):
            return 1.0

        add_blackbox_feature(feature_table, 'test', bb_fn)
        add_blackbox_feature(feature_table, 'test', bb_fn)
    def test_add_bb_feature_name_already_present(self):
        A = read_csv_metadata(path_a)
        B = read_csv_metadata(path_b, key='ID')
        feature_table = create_feature_table()
        len1 = len(feature_table)

        def bb_fn(ltuple, rtuple):
            return 1.0

        add_blackbox_feature(feature_table, 'test', bb_fn)
        add_blackbox_feature(feature_table, 'test', bb_fn)
 def test_add_bb_feature_valid_2(self):
     A = read_csv_metadata(path_a)
     B = read_csv_metadata(path_b, key='ID')
     feature_table = create_feature_table()
     def bb_fn(ltuple, rtuple):
         return 1.0
     len1 = len(feature_table)
     add_blackbox_feature(feature_table, 'test', bb_fn)
     len2 = len(feature_table)
     self.assertEqual(len1+1, len2)
     self.assertEqual(feature_table.ix[len(feature_table)-1, 'function'](A.ix[1], B.ix[2]), 1.0)
 def test_add_bb_feature_valid_1(self):
     A = read_csv_metadata(path_a)
     B = read_csv_metadata(path_b, key='ID')
     feature_table = get_features_for_matching(A, B, validate_inferred_attr_types=False)
     def bb_fn(ltuple, rtuple):
         return 1.0
     len1 = len(feature_table)
     add_blackbox_feature(feature_table, 'test', bb_fn)
     len2 = len(feature_table)
     self.assertEqual(len1+1, len2)
     self.assertEqual(feature_table.ix[len(feature_table)-1, 'function'](A.ix[1], B.ix[2]), 1.0)
    def test_add_bb_feature_valid_2(self):
        A = read_csv_metadata(path_a)
        B = read_csv_metadata(path_b, key='ID')
        feature_table = create_feature_table()

        def bb_fn(ltuple, rtuple):
            return 1.0

        len1 = len(feature_table)
        add_blackbox_feature(feature_table, 'test', bb_fn)
        len2 = len(feature_table)
        self.assertEqual(len1 + 1, len2)
        self.assertEqual(
            feature_table.ix[len(feature_table) - 1, 'function'](A.ix[1],
                                                                 B.ix[2]), 1.0)
    def test_add_bb_feature_valid_1(self):
        A = read_csv_metadata(path_a)
        B = read_csv_metadata(path_b, key='ID')
        feature_table = get_features_for_matching(
            A, B, validate_inferred_attr_types=False)

        def bb_fn(ltuple, rtuple):
            return 1.0

        len1 = len(feature_table)
        add_blackbox_feature(feature_table, 'test', bb_fn)
        len2 = len(feature_table)
        self.assertEqual(len1 + 1, len2)
        self.assertEqual(
            feature_table.ix[len(feature_table) - 1, 'function'](A.ix[1],
                                                                 B.ix[2]), 1.0)
    def test_add_bb_feature_with_attrs(self):
        A = read_csv_metadata(path_a)
        B = read_csv_metadata(path_b, key='ID')
        feature_table = get_features_for_matching(
            A, B, validate_inferred_attr_types=False)

        def bb_fn(ltuple, rtuple):
            return min(len(ltuple['name']), len(rtuple['name']))

        len1 = len(feature_table)
        attrs = {'left_attribute': 'name', 'right_attribute': 'name'}
        add_blackbox_feature(feature_table, 'bb_attr_test', bb_fn, **attrs)
        len2 = len(feature_table)
        self.assertEqual(len1 + 1, len2)
        added_feature = feature_table.iloc[len(feature_table) - 1]
        self.assertEqual(added_feature.feature_name, 'bb_attr_test')
        self.assertEqual(added_feature.left_attribute, 'name')
        self.assertEqual(added_feature.right_attribute, 'name')
        self.assertEqual(added_feature.simfunction, None)
 def test_add_bb_feature_invalid_feature_dict_type(self):
     add_blackbox_feature(pd.DataFrame(), "", None)
 def test_add_bb_feature_invalid_feat_name_type(self):
     add_blackbox_feature(pd.DataFrame(), None, dict())
 def test_add_bb_feature_invalid_df(self):
     add_blackbox_feature(None, 'test', dict())
 def test_add_bb_feature_invalid_feature_dict_type(self):
     add_blackbox_feature(pd.DataFrame(), "", None)
 def test_add_bb_feature_invalid_feat_name_type(self):
     add_blackbox_feature(pd.DataFrame(), None, dict())
 def test_add_bb_feature_invalid_df(self):
     add_blackbox_feature(None, 'test', dict())