assertthat
Version:
assertthat provides fluent TDD.
32 lines (31 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findArrayDiffOmissions = void 0;
const findOmissions_1 = require("../findOmissions");
const sum_1 = require("../../utils/sum");
const ArrayDiff_1 = require("./ArrayDiff");
const ArrayDiffSegment_1 = require("./ArrayDiffSegment");
const findArrayDiffOmissions = function (diff) {
const filteredSegments = diff.segments.
map((segment) => {
if ((0, ArrayDiffSegment_1.isChangeDiffSegment)(segment)) {
const newSegmentContent = segment.change.
map((change) => (0, findOmissions_1.findOmissions)(change)).
filter((change) => change.cost > 0);
const newCost = (0, sum_1.sum)(newSegmentContent.map((change) => change.cost));
return {
change: newSegmentContent,
cost: newCost
};
}
return segment;
}).
filter((segment) => !(0, ArrayDiffSegment_1.isEqualDiffSegment)(segment) &&
!(0, ArrayDiffSegment_1.isAdditionDiffSegment)(segment) &&
segment.cost > 0);
return (0, ArrayDiff_1.arrayDiff)({
cost: (0, sum_1.sum)(filteredSegments.map((segment) => segment.cost)),
segments: filteredSegments
});
};
exports.findArrayDiffOmissions = findArrayDiffOmissions;