Ejemplo n.º 1
0
    def test_run_test_false_outcome2(self, progress):
        model_test = ModelTest()
        model_test.outcomes = [self.true_outcome1, self.false_outcome1]

        results = run_tests((model_test, ), Model(), progress)
        status, _ = results[model_test]
        assert status is False
Ejemplo n.º 2
0
    def test_run_test_infeasible_solution(self, mock_optimize_infeasible,
                                          progress):
        model_test = ModelTest()
        model_test.outcomes = [self.true_outcome1, self.false_outcome1]

        results = run_tests((model_test, ), Model(), progress)
        status, solution = results[model_test]
        assert solution is mock_optimize_infeasible
        assert status is False
Ejemplo n.º 3
0
    def test_restore_initial_get_original_called(self,
                                                 mock_get_original_settings,
                                                 progress):
        original_settings = mock_get_original_settings
        assert GEMEditor.analysis.model_test._get_original_settings.called is False
        model_test = ModelTest()
        model_test.outcomes = [self.true_outcome1]

        results = run_tests((model_test, ), Model(), progress)
        status, _ = results[model_test]
        assert GEMEditor.analysis.model_test._get_original_settings.called is True
        for x in original_settings:
            assert x.do.called is True
Ejemplo n.º 4
0
    def test_value_restored(self, progress):
        model_test = ModelTest()
        self.setting2.do = Mock()
        model_test.reaction_settings = [self.setting1, self.setting2]
        assert self.setting2.do.called is False
        assert self.reaction1 is self.setting1.reaction

        results = run_tests((model_test, ), Model(), progress)
        status, _ = results[model_test]
        assert self.setting2.do.called is True
        assert self.reaction1.upper_bound == self.r1_init_setting.upper_bound
        assert self.reaction1.lower_bound == self.r1_init_setting.lower_bound
        assert self.reaction1.objective_coefficient == self.r1_init_setting.objective_coefficient
Ejemplo n.º 5
0
    def run_tests(self, selected=()):
        if not self.model.tests:
            return
        elif not selected:
            # Run all tests if no selection specified
            selected = self.model.tests

        with ProgressDialog(title="Running tests..") as progress:
            try:
                test_results = run_tests(selected, self.model, progress)
            except Exception as e:
                LOGGER.exception("Error running tests")
                QMessageBox().critical(None, "Error", "The following error occured "
                                                      "while running the tests:\n{}".format(str(e)))
                return

            mapping = self.dataTable.get_item_to_row_mapping()

            num_passed = 0
            self.dataTable.blockSignals(True)
            for testcase, result in test_results.items():
                row = mapping[testcase]
                status, solution = result
                if status:
                    num_passed += 1
                self.dataTable.set_status(row, solution, status)
            self.dataTable.blockSignals(False)
            self.dataTable.all_data_changed()

        if num_passed == 0:
            self.statusBar.setStyleSheet("color: red; font-weight: bold;")
        elif num_passed == len(test_results):
            self.statusBar.setStyleSheet("color: green; font-weight: bold;")
        else:
            self.statusBar.setStyleSheet("color: orange; font-weight: bold;")
        self.statusBar.showMessage("{0!s} out of {1!s} tests passed!".format(num_passed, len(test_results)), 4000)