{ "schemaVersion": 3, "run": { "status": "FINISHED", "diagnostics": [] }, "definition": { "metricId": "mutation-crap", "metricVersion": 1, "scorePolicyId": "timeouts-killed-v1", "formula": "C^2 * (1 - MS)^3 + C, MS = killed / eligible mutants as the score policy counts them", "complexityProvider": { "id": "jacoco-cyclomatic", "version": "0.8.15" }, "changeRiskFormula": "per top-level class: C^2 * (1 - MS)^3 + C over its scored methods, C and mutants summed, times (1 + (LCOM4 - 1) / 2) times (1 + Ce / 20)" }, "provenance": { "pluginVersion": "0.26.10", "pitVersion": "1.30.0", "analysisContext": ":pitest", "codeRoots": [ "build/classes/java/main" ], "classFiles": { "demo.Classifier": { "origin": "build/classes/java/main", "sha256": "9f2c1e4b7a8d0c3e6f5a2b1d4c7e0f3a6b9c2d5e8f1a4b7c0d3e6f9a2b5c8e1d" }, "demo.Grade": { "origin": "build/classes/java/main", "sha256": "9f2c1e4b7a8d0c3e6f5a2b1d4c7e0f3a6b9c2d5e8f1a4b7c0d3e6f9a2b5c8e1d" } } }, "configuration": { "metric": { "analysisContext": ":pitest", "excludeClasses": [], "excludeMethods": [] }, "pit": { "excludedClasses": [], "excludedMethods": [], "features": [], "mutators": [], "targetClasses": [ "demo.*" ] }, "pitConfigurationComplete": false, "pitConfigurationNote": "only the listed PIT options are recorded; target tests, mutation filters and test framework settings are not" }, "scope": { "complete": true, "selectedClasses": [ "demo.Classifier", "demo.Grade", "demo.Legacy" ], "unreadableClasses": [] }, "summary": { "methods": 7, "byState": { "SCORED": 2, "NO_MUTATION_RESULTS": 1, "NO_ELIGIBLE_MUTANTS": 1, "INCONCLUSIVE": 1, "COMPLEXITY_UNAVAILABLE": 1, "EXCLUDED": 1 }, "highestScores": [ { "class": "demo.Classifier", "method": "classify", "descriptor": "(I)Ljava/lang/String;", "mutationCrap": 22.5 }, { "class": "demo.Classifier", "method": "normalize", "descriptor": "(I)I", "mutationCrap": 1 } ] }, "methods": [ { "class": "demo.Classifier", "method": "classify", "descriptor": "(I)Ljava/lang/String;", "state": "SCORED", "reasons": [], "complexity": 10, "statusCounts": { "KILLED": 5, "SURVIVED": 5 }, "contradictedMutants": 0, "excludedMutants": 0, "denominator": 10, "mutationScore": 0.5, "mutationCrap": 22.5, "mutationCrapExact": { "numerator": "45", "denominator": "2" }, "sourceFile": "Classifier.java", "firstLine": 12 }, { "class": "demo.Classifier", "method": "compare", "descriptor": "(II)I", "state": "NO_ELIGIBLE_MUTANTS", "reasons": [ "no-eligible-mutants" ], "complexity": 2, "statusCounts": { "NON_VIABLE": 2 }, "contradictedMutants": 0, "excludedMutants": null, "denominator": null, "mutationScore": null, "mutationCrap": null, "mutationCrapExact": null, "sourceFile": "Classifier.java", "firstLine": 40 }, { "class": "demo.Classifier", "method": "describe", "descriptor": "()Ljava/lang/String;", "state": "NO_MUTATION_RESULTS", "reasons": [ "no-mutation-results" ], "complexity": 2, "statusCounts": {}, "contradictedMutants": 0, "excludedMutants": null, "denominator": null, "mutationScore": null, "mutationCrap": null, "mutationCrapExact": null, "sourceFile": "Classifier.java", "firstLine": 35 }, { "class": "demo.Classifier", "method": "normalize", "descriptor": "(I)I", "state": "SCORED", "reasons": [], "complexity": 1, "statusCounts": { "KILLED": 1 }, "contradictedMutants": 0, "excludedMutants": 0, "denominator": 1, "mutationScore": 1, "mutationCrap": 1, "mutationCrapExact": { "numerator": "1", "denominator": "1" }, "sourceFile": "Classifier.java", "firstLine": 30 }, { "class": "demo.Classifier", "method": "retry", "descriptor": "(I)I", "state": "INCONCLUSIVE", "reasons": [ "inconclusive-status:RUN_ERROR" ], "complexity": 3, "statusCounts": { "KILLED": 2, "RUN_ERROR": 1 }, "contradictedMutants": 0, "excludedMutants": null, "denominator": null, "mutationScore": null, "mutationCrap": null, "mutationCrapExact": null, "sourceFile": "Classifier.java", "firstLine": 45 }, { "class": "demo.Grade", "method": "values", "descriptor": "()[Ldemo/Grade;", "state": "EXCLUDED", "reasons": [ "jacoco-filtered:other" ], "complexity": null, "statusCounts": {}, "contradictedMutants": 0, "excludedMutants": null, "denominator": null, "mutationScore": null, "mutationCrap": null, "mutationCrapExact": null, "sourceFile": "Grade.java", "firstLine": null }, { "class": "demo.Legacy", "method": "run", "descriptor": "()V", "state": "COMPLEXITY_UNAVAILABLE", "reasons": [ "complexity-unavailable", "method-not-in-inventory" ], "complexity": null, "statusCounts": { "SURVIVED": 1 }, "contradictedMutants": 0, "excludedMutants": null, "denominator": null, "mutationScore": null, "mutationCrap": null, "mutationCrapExact": null, "sourceFile": null, "firstLine": null } ], "classes": [ { "class": "demo.Classifier", "lcom4": 2, "methodGroups": [ [ "classify", "normalize", "retry" ], [ "compare", "describe" ] ], "efferentCoupling": 1, "afferentCoupling": 0, "complexity": 11, "killed": 6, "denominator": 11, "mutationScore": 0.5454545454545455, "changeRisk": null, "changeRiskExact": null, "changeRiskReasons": [ "method-not-scored:retry(I)I" ] }, { "class": "demo.Grade", "lcom4": null, "methodGroups": [], "efferentCoupling": 0, "afferentCoupling": 1, "complexity": null, "killed": null, "denominator": null, "mutationScore": null, "changeRisk": null, "changeRiskExact": null, "changeRiskReasons": [ "no-scored-methods" ] } ] }