コード例 #1
0
    def test_simsilarity_arg_forwarding(self):
        with patch.object(HPOSet, '_sim_score',
                          return_value=Matrix(1, 1, [1])) as mock_simscore:
            set1 = HPOSet([self.terms[0]])
            set2 = HPOSet([self.terms[1]])

            _ = set1.similarity(set2)
            mock_simscore.assert_called_once_with(set1, set2, '', '')
            mock_simscore.reset_mock()

            _ = set1.similarity(set2, 'foo')
            mock_simscore.assert_called_once_with(set1, set2, 'foo', '')
            mock_simscore.reset_mock()

            _ = set1.similarity(set2, kind='foo')
            mock_simscore.assert_called_once_with(set1, set2, 'foo', '')
            mock_simscore.reset_mock()

            _ = set1.similarity(set2, 'foo', 'bar')
            mock_simscore.assert_called_once_with(set1, set2, 'foo', 'bar')
            mock_simscore.reset_mock()

            _ = set1.similarity(set2, kind='foo', method='bar')
            mock_simscore.assert_called_once_with(set1, set2, 'foo', 'bar')
            mock_simscore.reset_mock()

            _ = set1.similarity(set2, method='bar')
            mock_simscore.assert_called_once_with(set1, set2, '', 'bar')
            mock_simscore.reset_mock()

            _ = set1.similarity(set2, None, 'bar')
            mock_simscore.assert_called_once_with(set1, set2, None, 'bar')
            mock_simscore.reset_mock()
コード例 #2
0
    def test_equality_score_call(self):
        with patch.object(HPOSet, '_sim_score',
                          return_value=None) as mock_simscore, patch.object(
                              HPOSet, '_equality_score',
                              return_value=12) as mock_equality_score:
            set1 = HPOSet([self.terms[0]])
            set2 = HPOSet([self.terms[1]])

            res = set1.similarity(set2, method='equal')
            mock_simscore.assert_not_called()
            mock_equality_score.assert_called_once_with(set2)
            self.assertEqual(res, 12)
コード例 #3
0
    def test_invalid_combine_method(self):
        with patch.object(HPOSet,
                          '_sim_score',
                          return_value=Matrix(
                              2, 4,
                              [1, 0.5, 2, 4, 2, 3, 1, 1])) as mock_simscore:
            with self.assertRaises(RuntimeError) as context:
                set1 = HPOSet([self.terms[0]])
                set2 = HPOSet([self.terms[1]])

                _ = set1.similarity(set2, combine='invalid')
            mock_simscore.assert_called_once_with(set1, set2, '', '')
        self.assertEqual(str(context.exception),
                         'Invalid combine method specified')
コード例 #4
0
    def test_empty_sets(self):
        with patch.object(HPOSet, '_sim_score',
                          return_value=Matrix(0, 0, [])) as mock_simscore:
            """
            Row maxes: 4, 3 ==> 7 ==> 7
            Col maxes: 2, 3, 2, 4 ==> 11 ==> 11
            ==> 18 / 6
            """

            set1 = HPOSet([self.terms[0]])
            set2 = HPOSet([self.terms[1]])

            res = set1.similarity(set2, combine='BMA')
            mock_simscore.assert_called_once_with(set1, set2, '', '')
            self.assertEqual(res, 0)
コード例 #5
0
    def test_funSimMax(self):
        with patch.object(HPOSet,
                          '_sim_score',
                          return_value=Matrix(
                              2, 4,
                              [1, 0.5, 2, 4, 2, 3, 1, 1])) as mock_simscore:
            """
            Row maxes: 4, 3 ==> 7 ==> 7/2 = 3.5
            Col maxes: 2, 3, 2, 4 ==> 11 ==> 11/4 = 2.75
            """

            set1 = HPOSet([self.terms[0]])
            set2 = HPOSet([self.terms[1]])

            res = set1.similarity(set2, combine='funSimMax')
            mock_simscore.assert_called_once_with(set1, set2, '', '')
            self.assertEqual(res, 3.5)