import { describe, expect, test } from "bun:test";
-import {
- type EntityWithScore,
- resolveConflicts,
- resolveOverlaps,
-} from "./conflict-resolver";
+import { type EntityWithScore, resolveConflicts, resolveOverlaps } from "./conflict-resolver";
describe("resolveConflicts", () => {
test("empty input returns empty array", () => {
return a.start < b.end && b.start < a.end;
}
-function isContainedIn(a: Interval, b: Interval): boolean {
- return b.start <= a.start && b.end >= a.end;
-}
-
function groupBy<T>(items: T[], keyFn: (item: T) => string): Map<string, T[]> {
const groups = new Map<string, T[]>();
for (const item of items) {
return groups;
}
-function mergeOverlapping<T extends Interval>(
- intervals: T[],
- merge: (a: T, b: T) => T,
-): T[] {
+function mergeOverlapping<T extends Interval>(intervals: T[], merge: (a: T, b: T) => T): T[] {
if (intervals.length <= 1) return [...intervals];
const sorted = [...intervals].sort((a, b) => a.start - b.start);