public void evaluateMutationScore(boolean literalOmission, boolean literalNegation, boolean clauseOmission, boolean clauseNegation, boolean operatorAnd, boolean operatorOr, boolean print) {
        createMutants(literalOmission, literalNegation, clauseOmission, clauseNegation, operatorAnd, operatorOr);
        setRunning(true);
        setGlobalAction(GLOBAL_ACTION_EVAL_TEST_SUITE);
        setCurrentAction(CURRENT_ACTION_EVAL_MUTANTS);
        setChanged();
        notifyObservers();



        killed = 0;
        totalOk = 0;
        for (Mutant m : mutants) {
            boolean mutantOk = true;
            ISolver solver = SolverFactory.newDefault();
            solver.newVar(m.nVars);
            solver.setExpectedNumberOfClauses(m.nClauses());
            for (Clause c : m.getClauses()) {
                try {
                    IVecInt v = c.toVecInt();
                    solver.addClause(v);
                } catch (Exception ex) {
                    mutantOk = false;
                    break;
                }
            }

            if (mutantOk) {
                totalOk++;
                m.setInvalid(false);
                for (Test t : testSuite.getTests()) {
                    IVecInt test = t.toVecInt();


                    try {
                        if (!solver.isSatisfiable(test)) {
                            m.setKilled(true);
                            killed++;
                            System.out.println("(killed)  " + m.toStringMutant());
                            break;
                        } else {
                            System.out.println("(live)  " + m.toStringMutant());
                        }
                    } catch (TimeoutException ex) {
                        Logger.getLogger(ModelMutaLog.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            } else {
                m.setInvalid(true);
                System.out.println("(invalid)  " + m.toStringMutant());
            }

        }

        if (print) {
            System.out.println("Score: " + this.killed + " / " + this.totalOk + " (" + (this.mutants.size() - totalOk) + " invalid)");
        }

        setRunning(false);
        setChanged();
        notifyObservers("score");

    }