mutation-testing-metrics
Advanced tools
Comparing version 1.3.0 to 1.4.0
@@ -6,2 +6,19 @@ # Change Log | ||
# [1.4.0](https://github.com/stryker-mutator/mutation-testing-elements/compare/v1.3.1...v1.4.0) (2020-08-25) | ||
**Note:** Version bump only for package mutation-testing-metrics | ||
## [1.3.1](https://github.com/stryker-mutator/mutation-testing-elements/compare/v1.3.0...v1.3.1) (2020-03-28) | ||
**Note:** Version bump only for package mutation-testing-metrics | ||
# [1.3.0](https://github.com/stryker-mutator/mutation-testing-elements/compare/v1.2.3...v1.3.0) (2020-02-27) | ||
@@ -8,0 +25,0 @@ |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.calculateMetrics = void 0; | ||
const helpers_1 = require("./helpers"); | ||
@@ -18,3 +19,3 @@ const helpers_2 = require("./helpers"); | ||
function calculateDirectoryMetrics(files, name) { | ||
const metrics = countMetrics(helpers_1.flatMap(Object.values(files), file => file.mutants)); | ||
const metrics = countMetrics(helpers_1.flatMap(Object.values(files), (file) => file.mutants)); | ||
const childResults = toChildModels(files); | ||
@@ -24,3 +25,3 @@ return { | ||
childResults, | ||
metrics | ||
metrics, | ||
}; | ||
@@ -33,12 +34,12 @@ } | ||
childResults: [], | ||
metrics: countMetrics(file.mutants) | ||
metrics: countMetrics(file.mutants), | ||
}; | ||
} | ||
function toChildModels(files) { | ||
const filesByDirectory = helpers_2.groupBy(Object.entries(files), namedFile => namedFile[0].split('/')[0]); | ||
const filesByDirectory = helpers_2.groupBy(Object.entries(files), (namedFile) => namedFile[0].split('/')[0]); | ||
return Object.keys(filesByDirectory) | ||
.map(directoryName => { | ||
.map((directoryName) => { | ||
if (filesByDirectory[directoryName].length > 1 || filesByDirectory[directoryName][0][0] !== directoryName) { | ||
const directoryFiles = {}; | ||
filesByDirectory[directoryName].forEach(file => directoryFiles[file[0].substr(directoryName.length + 1)] = file[1]); | ||
filesByDirectory[directoryName].forEach((file) => (directoryFiles[file[0].substr(directoryName.length + 1)] = file[1])); | ||
return calculateDirectoryMetrics(directoryFiles, directoryName); | ||
@@ -55,3 +56,3 @@ } | ||
function countMetrics(mutants) { | ||
const count = (status) => mutants.filter(_ => _.status === status).length; | ||
const count = (status) => mutants.filter((_) => _.status === status).length; | ||
const killed = count("Killed" /* Killed */); | ||
@@ -78,10 +79,11 @@ const timeout = count("Timeout" /* Timeout */); | ||
totalDetected, | ||
totalUndetected, totalCovered, | ||
totalUndetected, | ||
totalCovered, | ||
totalValid, | ||
totalInvalid, | ||
mutationScore: totalValid > 0 ? totalDetected / totalValid * 100 : DEFAULT_SCORE, | ||
mutationScore: totalValid > 0 ? (totalDetected / totalValid) * 100 : DEFAULT_SCORE, | ||
totalMutants: totalValid + totalInvalid + ignored, | ||
mutationScoreBasedOnCoveredCode: totalValid > 0 ? totalDetected / totalCovered * 100 || 0 : DEFAULT_SCORE | ||
mutationScoreBasedOnCoveredCode: totalValid > 0 ? (totalDetected / totalCovered) * 100 || 0 : DEFAULT_SCORE, | ||
}; | ||
} | ||
//# sourceMappingURL=calculateMetrics.js.map |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.compareNames = exports.normalizeFileNames = exports.pathJoin = exports.groupBy = exports.flatMap = void 0; | ||
const SEPARATOR = '/'; | ||
function flatMap(source, fn) { | ||
const result = []; | ||
source.map(fn).forEach(items => result.push(...items)); | ||
source.map(fn).forEach((items) => result.push(...items)); | ||
return result; | ||
@@ -13,3 +14,3 @@ } | ||
const key = criteria(item); | ||
if (!acc.hasOwnProperty(key)) { | ||
if (!Object.prototype.hasOwnProperty.call(acc, key)) { | ||
acc[key] = []; | ||
@@ -23,3 +24,3 @@ } | ||
function pathJoin(...parts) { | ||
return parts.reduce((prev, current) => prev.length ? current ? `${prev}/${current}` : prev : current, ''); | ||
return parts.reduce((prev, current) => (prev.length ? (current ? `${prev}/${current}` : prev) : current), ''); | ||
} | ||
@@ -31,3 +32,3 @@ exports.pathJoin = pathJoin; | ||
const output = {}; | ||
fileNames.forEach(fileName => { | ||
fileNames.forEach((fileName) => { | ||
output[normalize(fileName.substr(commonBasePath.length))] = input[fileName]; | ||
@@ -39,8 +40,9 @@ }); | ||
function normalize(fileName) { | ||
return fileName.split(/\/|\\/) | ||
.filter(pathPart => pathPart) | ||
return fileName | ||
.split(/\/|\\/) | ||
.filter((pathPart) => pathPart) | ||
.join('/'); | ||
} | ||
function determineCommonBasePath(fileNames) { | ||
const directories = fileNames.map(fileName => fileName.split(/\/|\\/).slice(0, -1)); | ||
const directories = fileNames.map((fileName) => fileName.split(/\/|\\/).slice(0, -1)); | ||
if (fileNames.length) { | ||
@@ -47,0 +49,0 @@ return directories.reduce(filterDirectories).join(SEPARATOR); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.normalizeFileNames = exports.calculateMetrics = void 0; | ||
const calculateMetrics_1 = require("./calculateMetrics"); | ||
exports.calculateMetrics = calculateMetrics_1.calculateMetrics; | ||
Object.defineProperty(exports, "calculateMetrics", { enumerable: true, get: function () { return calculateMetrics_1.calculateMetrics; } }); | ||
const helpers_1 = require("./helpers"); | ||
exports.normalizeFileNames = helpers_1.normalizeFileNames; | ||
Object.defineProperty(exports, "normalizeFileNames", { enumerable: true, get: function () { return helpers_1.normalizeFileNames; } }); | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "mutation-testing-metrics", | ||
"version": "1.3.0", | ||
"version": "1.4.0", | ||
"description": "Utility functions to calculate mutation testing metrics.", | ||
@@ -8,3 +8,3 @@ "main": "dist/src/index.js", | ||
"scripts": { | ||
"test": "mocha -r source-map-support/register dist/test/**/*.js", | ||
"test": "mocha --forbid-only --forbid-pending -r source-map-support/register dist/test/**/*.js", | ||
"stryker": "stryker run" | ||
@@ -22,5 +22,5 @@ }, | ||
"dependencies": { | ||
"mutation-testing-report-schema": "^1.3.0" | ||
"mutation-testing-report-schema": "^1.4.0" | ||
}, | ||
"gitHead": "fe44d6e0a273c267a5e5b49d39c53341e8476447" | ||
"gitHead": "f3e74496c4bef02116b628b25299e133db8d90b7" | ||
} |
SPDX disjunction
LicenseSPDX disjunction for an artifact's license information
Found 1 instance in 1 package
SPDX disjunction
LicenseSPDX disjunction for an artifact's license information
Found 1 instance in 1 package
28375
283