def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.sut = StartingCoverageOperator()
class TestStartingCoverageOperator(CoverageOperatorTestCommon): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.sut = StartingCoverageOperator() def test_operators_execute_with_some_chance(self): # Given: self.environment_mock.get_sentence_length.return_value = 1 self.environment_mock.is_sentence_positive.return_value = True # When/Then: self.operator_executes_with_some_chance_scenario() def test_given_sentence_of_length_greater_than_1_should_not_cover_it(self): # Given: self.environment_mock.get_sentence_length.return_value = 5 # When: result = self.sut.cover(self.cyk_service_mock, self.environment_mock, self.rule_population_mock, self.coordinates) # Then: assert_that(result, is_(EmptyProduction(Detector(self.coordinates)))) def test_given_positivity_of_sentence_unknown__no_coverage_should_occur(self): # Given: self.environment_mock.get_sentence_length.return_value = 1 self.environment_mock.is_sentence_positive.return_value = None # When: result = self.sut.cover(self.cyk_service_mock, self.environment_mock, self.rule_population_mock, self.coordinates) # Then: assert_that(result, is_(EmptyProduction(Detector(self.coordinates)))) def test_given_negative_sentence__no_coverage_should_occur(self): # Given: self.environment_mock.get_sentence_length.return_value = 1 self.environment_mock.is_sentence_positive.return_value = False # When: result = self.sut.cover(self.cyk_service_mock, self.environment_mock, self.rule_population_mock, self.coordinates) # Then: assert_that(result, is_(EmptyProduction(Detector(self.coordinates)))) def test_given_positive_sentence_of_length_1__coverage_should_occur(self): # Given: self.environment_mock.get_sentence_symbol.return_value = Symbol(hash('a')) self.environment_mock.get_sentence_length.return_value = 1 self.environment_mock.is_sentence_positive.return_value = True # When: result = self.sut.cover(self.cyk_service_mock, self.environment_mock, self.rule_population_mock, self.coordinates) # Then: assert_that(result, is_(equal_to(Production( Detector(self.coordinates), TerminalRule(self.rule_population_mock.starting_symbol, Symbol(hash('a')))))))