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()
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)
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')
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)
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)