Socket
Socket
Sign inDemoInstall

mutation-testing-metrics

Package Overview
Dependencies
1
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.3.0 to 1.4.0

17

CHANGELOG.md

@@ -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 @@

22

dist/src/calculateMetrics.js
"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"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc