def test_parent(self) -> None: """Test referencing parent and weak reference handling.""" state = State() cloned_state = state.clone() assert cloned_state.parent is state del state gc.collect() assert cloned_state.parent is None
def test_run(self, state: State, state_count: int) -> None: """Test running the hill climbing method.""" beam = Beam() for _ in range(state_count): cloned_state = state.clone() cloned_state.iteration = state.iteration + 1 beam.add_state(cloned_state) predictor = HillClimbing() context = flexmock(accepted_final_states_count=33, beam=beam) with predictor.assigned_context(context): next_state, package_tuple = predictor.run() assert next_state is not None assert next_state is beam.max() assert package_tuple[0] in next_state.unresolved_dependencies assert package_tuple in next_state.unresolved_dependencies[package_tuple[0]].values()
def test_run(self, state: State, state_count: int) -> None: """Test running the approximating latest method.""" beam = Beam() for _ in range(state_count): cloned_state = state.clone() cloned_state.iteration = state.iteration + 1 beam.add_state(cloned_state) predictor = ApproximatingLatest() # Add an item to the heat up entry so that assume the heat-up process was already done. predictor._packages_heated_up = {"some-package"} context = flexmock(accepted_final_states_count=33, beam=beam) with predictor.assigned_context(context): next_state, package_tuple = predictor.run() assert next_state is not None assert next_state in beam.iter_states() assert package_tuple[0] in next_state.unresolved_dependencies assert package_tuple in next_state.unresolved_dependencies[ package_tuple[0]].values()
def test_clone(self, state: State) -> None: """Test cloning of states and their memory footprints.""" cloned_state = state.clone() assert cloned_state is not state assert cloned_state.score == state.score # Check swallow copies. assert cloned_state.unresolved_dependencies is not state.unresolved_dependencies assert cloned_state.unresolved_dependencies == state.unresolved_dependencies assert cloned_state.resolved_dependencies is not state.resolved_dependencies assert cloned_state.resolved_dependencies == state.resolved_dependencies assert ( cloned_state.advised_runtime_environment is not state.advised_runtime_environment ) assert ( cloned_state.advised_runtime_environment == state.advised_runtime_environment ) assert cloned_state.justification is not state.justification assert cloned_state.justification == state.justification
def test_run(self, state: State, state_count: int, limit: int, count: int, iteration: int, accepted_final_states: int) -> None: """Test running the annealing.""" beam = Beam() for _ in range(state_count): cloned_state = state.clone() cloned_state.iteration = state.iteration + 1 beam.add_state(cloned_state) predictor = AdaptiveSimulatedAnnealing() context = flexmock( accepted_final_states_count=accepted_final_states, count=count, iteration=iteration, limit=limit, beam=beam, ) with predictor.assigned_context(context): next_state, package_tuple = predictor.run() assert next_state in beam.iter_states() assert package_tuple is not None assert package_tuple[0] in next_state.unresolved_dependencies assert package_tuple in next_state.unresolved_dependencies[ package_tuple[0]].values()