mirror of
https://github.com/morluto/rea.git
synced 2026-11-15 11:13:21 +00:00
* fix(verify): rewrite counted baselines only when a count was lowered * test(verify): own the baseline write decision in a tested helper
30 lines
949 B
TypeScript
30 lines
949 B
TypeScript
/** One file whose observed count differs from its recorded baseline. */
|
|
export interface CountedBaselineDifference {
|
|
readonly path: string;
|
|
readonly count: number;
|
|
readonly allowed: number;
|
|
}
|
|
|
|
/** Compare per-file counts with a baseline that may only shrink. */
|
|
export function compareCountedBaseline(
|
|
counts: ReadonlyMap<string, number>,
|
|
baseline: Readonly<Record<string, number>>,
|
|
shrink: boolean,
|
|
): {
|
|
readonly grown: CountedBaselineDifference[];
|
|
readonly stale: CountedBaselineDifference[];
|
|
readonly baseline: Record<string, number>;
|
|
/** True only when `shrink` lowered or removed a recorded count. */
|
|
readonly lowered: boolean;
|
|
};
|
|
|
|
/** Record a lowered baseline under `key`; true when the map changed. */
|
|
export function recordLoweredBaseline(
|
|
baselines: Record<string, Record<string, number>>,
|
|
key: string,
|
|
compared: {
|
|
readonly baseline: Record<string, number>;
|
|
readonly lowered: boolean;
|
|
},
|
|
): boolean;
|