|
|
import { compareFunctionCovs, compareRangeCovs, compareScriptCovs } from "./compare"; |
|
|
import { RangeTree } from "./range-tree"; |
|
|
import { FunctionCov, ProcessCov, ScriptCov } from "./types"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function normalizeProcessCov(processCov: ProcessCov): void { |
|
|
processCov.result.sort(compareScriptCovs); |
|
|
for (const [scriptId, scriptCov] of processCov.result.entries()) { |
|
|
scriptCov.scriptId = scriptId.toString(10); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function deepNormalizeProcessCov(processCov: ProcessCov): void { |
|
|
for (const scriptCov of processCov.result) { |
|
|
deepNormalizeScriptCov(scriptCov); |
|
|
} |
|
|
normalizeProcessCov(processCov); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function normalizeScriptCov(scriptCov: ScriptCov): void { |
|
|
scriptCov.functions.sort(compareFunctionCovs); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function deepNormalizeScriptCov(scriptCov: ScriptCov): void { |
|
|
for (const funcCov of scriptCov.functions) { |
|
|
normalizeFunctionCov(funcCov); |
|
|
} |
|
|
normalizeScriptCov(scriptCov); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function normalizeFunctionCov(funcCov: FunctionCov): void { |
|
|
funcCov.ranges.sort(compareRangeCovs); |
|
|
const tree: RangeTree = RangeTree.fromSortedRanges(funcCov.ranges)!; |
|
|
normalizeRangeTree(tree); |
|
|
funcCov.ranges = tree.toRanges(); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function normalizeRangeTree(tree: RangeTree): void { |
|
|
tree.normalize(); |
|
|
} |
|
|
|