Spaces:
Sleeping
Sleeping
| import { FunctionCov, RangeCov, ScriptCov } from "./types"; | |
| /** | |
| * Compares two script coverages. | |
| * | |
| * The result corresponds to the comparison of their `url` value (alphabetical sort). | |
| */ | |
| export function compareScriptCovs(a: Readonly<ScriptCov>, b: Readonly<ScriptCov>): number { | |
| if (a.url === b.url) { | |
| return 0; | |
| } else if (a.url < b.url) { | |
| return -1; | |
| } else { | |
| return 1; | |
| } | |
| } | |
| /** | |
| * Compares two function coverages. | |
| * | |
| * The result corresponds to the comparison of the root ranges. | |
| */ | |
| export function compareFunctionCovs(a: Readonly<FunctionCov>, b: Readonly<FunctionCov>): number { | |
| return compareRangeCovs(a.ranges[0], b.ranges[0]); | |
| } | |
| /** | |
| * Compares two range coverages. | |
| * | |
| * The ranges are first ordered by ascending `startOffset` and then by | |
| * descending `endOffset`. | |
| * This corresponds to a pre-order tree traversal. | |
| */ | |
| export function compareRangeCovs(a: Readonly<RangeCov>, b: Readonly<RangeCov>): number { | |
| if (a.startOffset !== b.startOffset) { | |
| return a.startOffset - b.startOffset; | |
| } else { | |
| return b.endOffset - a.endOffset; | |
| } | |
| } | |