def test_calculate_one_way_likelihood_bigram_and_target_comes_before(self): mock_context_item_0 = mock() context = [mock_context_item_0] target = mock() wrapped_calculator = mock() calculation_context = None when(wrapped_calculator).calculate_oneway_likelihood( target, [mock_context_item_0], False, calculation_context).thenReturn(0.5) interpolating_calculator = InterpolatingLikelihoodCalculator( wrapped_calculator) interpolated_likelihood = interpolating_calculator.calculate_oneway_likelihood( target, context, False, calculation_context) assert_that(interpolated_likelihood, equal_to(0.5)) verify(wrapped_calculator).calculate_oneway_likelihood( target, [mock_context_item_0], False, calculation_context) verifyNoMoreInteractions(wrapped_calculator)
def test_calculate_one_way_likelihood_4gram_and_target_comes_after(self): # not practical but just try mock_context_item_0 = mock() mock_context_item_1 = mock() mock_context_item_2 = mock() context = [mock_context_item_0, mock_context_item_1, mock_context_item_2] target = mock() wrapped_calculator = mock() calculation_context = None when(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_2], True, calculation_context).thenReturn(0.5) when(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_1, mock_context_item_2], True, calculation_context).thenReturn(0.2) when(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_0, mock_context_item_1, mock_context_item_2], True, calculation_context).thenReturn(0.05) interpolating_calculator = InterpolatingLikelihoodCalculator(wrapped_calculator) interpolated_likelihood = interpolating_calculator.calculate_oneway_likelihood(target, context, True, calculation_context) assert_that(interpolated_likelihood, equal_to(0.5 * 1 / 111 + 0.2 * 10 / 111 + 0.05 * 100 / 111)) verify(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_2], True, calculation_context) verify(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_1, mock_context_item_2], True, calculation_context) verify(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_0, mock_context_item_1, mock_context_item_2], True, calculation_context) verifyNoMoreInteractions(wrapped_calculator)
def test_calculate_one_way_likelihood_trigram_and_target_comes_after(self): mock_context_item_0 = mock() mock_context_item_1 = mock() context = [mock_context_item_0, mock_context_item_1] target = mock() wrapped_calculator = mock() calculation_context = None when(wrapped_calculator).calculate_oneway_likelihood( target, [mock_context_item_1], True, calculation_context).thenReturn(0.5) when(wrapped_calculator).calculate_oneway_likelihood( target, [mock_context_item_0, mock_context_item_1], True, calculation_context).thenReturn(0.2) interpolating_calculator = InterpolatingLikelihoodCalculator( wrapped_calculator) interpolated_likelihood = interpolating_calculator.calculate_oneway_likelihood( target, context, True, calculation_context) assert_that(interpolated_likelihood, equal_to(0.5 * 1 / 11 + 0.2 * 10 / 11)) verify(wrapped_calculator).calculate_oneway_likelihood( target, [mock_context_item_1], True, calculation_context) verify(wrapped_calculator).calculate_oneway_likelihood( target, [mock_context_item_0, mock_context_item_1], True, calculation_context) verifyNoMoreInteractions(wrapped_calculator)
def test_calculate_one_way_likelihood_bigram_and_target_comes_before(self): mock_context_item_0 = mock() context = [mock_context_item_0] target = mock() wrapped_calculator = mock() calculation_context = None when(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_0], False, calculation_context).thenReturn(0.5) interpolating_calculator = InterpolatingLikelihoodCalculator(wrapped_calculator) interpolated_likelihood = interpolating_calculator.calculate_oneway_likelihood(target, context, False, calculation_context) assert_that(interpolated_likelihood, equal_to(0.5)) verify(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_0], False, calculation_context) verifyNoMoreInteractions(wrapped_calculator)