From c0072d5c72d8bfac3a46cba0020ccc1474ca97f2 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Sat, 6 Nov 2021 17:28:58 -0400 Subject: [PATCH] Add another segment to overlap test case and fix for that case --- src/routes/getSkipSegments.ts | 2 +- test/cases/getSkipSegmentsByHash.ts | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/routes/getSkipSegments.ts b/src/routes/getSkipSegments.ts index 03e2383..b8b0e71 100644 --- a/src/routes/getSkipSegments.ts +++ b/src/routes/getSkipSegments.ts @@ -281,7 +281,7 @@ function splitPercentOverlap(groups: OverlappingSegmentGroup[]): OverlappingSegm const overlap = Math.min(segment.endTime, compareSegment.endTime) - Math.max(segment.startTime, compareSegment.startTime); const overallDuration = Math.max(segment.endTime, compareSegment.endTime) - Math.min(segment.startTime, compareSegment.startTime); const overlapPercent = overlap / overallDuration; - return (segment.actionType === compareSegment.actionType && segment.actionType !== ActionType.Chapter) + return (overlapPercent > 0 && segment.actionType === compareSegment.actionType && segment.actionType !== ActionType.Chapter) || overlapPercent >= 0.6 || (overlapPercent >= 0.8 && segment.actionType === ActionType.Chapter && compareSegment.actionType === ActionType.Chapter); }); diff --git a/test/cases/getSkipSegmentsByHash.ts b/test/cases/getSkipSegmentsByHash.ts index e9da156..6fa4a46 100644 --- a/test/cases/getSkipSegmentsByHash.ts +++ b/test/cases/getSkipSegmentsByHash.ts @@ -34,8 +34,9 @@ describe("getSkipSegmentsByHash", () => { await db.prepare("run", query, ["chapterVid-hash", 70, 75, 2, "chapterVid-hash-2", "testman", 0, 50, "chapter", "chapter", "YouTube", 0, 0, getHash("chapterVid-hash", 1), "Chapter 2"]); //7258 await db.prepare("run", query, ["chapterVid-hash", 71, 76, 2, "chapterVid-hash-3", "testman", 0, 50, "chapter", "chapter", "YouTube", 0, 0, getHash("chapterVid-hash", 1), "Chapter 3"]); //7258 await db.prepare("run", query, ["longMuteVid-hash", 40, 45, 2, "longMuteVid-hash-1", "testman", 0, 50, "sponsor", "skip", "YouTube", 0, 0, getHash("longMuteVid-hash", 1), ""]); //6613 - await db.prepare("run", query, ["longMuteVid-hash", 2, 80, 2, "longMuteVid-hash-2", "testman", 0, 50, "sponsor", "mute", "YouTube", 0, 0, getHash("longMuteVid-hash", 1), ""]); //6613 - await db.prepare("run", query, ["longMuteVid-hash", 3, 78, 2, "longMuteVid-hash-3", "testman", 0, 50, "sponsor", "mute", "YouTube", 0, 0, getHash("longMuteVid-hash", 1), ""]); //6613 + await db.prepare("run", query, ["longMuteVid-hash", 30, 35, 2, "longMuteVid-hash-2", "testman", 0, 50, "sponsor", "skip", "YouTube", 0, 0, getHash("longMuteVid-hash", 1), ""]); //6613 + await db.prepare("run", query, ["longMuteVid-hash", 2, 80, 2, "longMuteVid-hash-3", "testman", 0, 50, "sponsor", "mute", "YouTube", 0, 0, getHash("longMuteVid-hash", 1), ""]); //6613 + await db.prepare("run", query, ["longMuteVid-hash", 3, 78, 2, "longMuteVid-hash-4", "testman", 0, 50, "sponsor", "mute", "YouTube", 0, 0, getHash("longMuteVid-hash", 1), ""]); //6613 }); it("Should be able to get a 200", (done) => { @@ -403,8 +404,11 @@ describe("getSkipSegmentsByHash", () => { assert.strictEqual(data.length, 1); const expected = [{ segments: [{ - UUID: "longMuteVid-hash-2", + UUID: "longMuteVid-hash-3", actionType: "mute" + }, { + UUID: "longMuteVid-hash-2", + actionType: "skip" }, { UUID: "longMuteVid-hash-1", actionType: "skip" @@ -412,8 +416,11 @@ describe("getSkipSegmentsByHash", () => { }]; const expected2 = [{ segments: [{ - UUID: "longMuteVid-hash-3", + UUID: "longMuteVid-hash-4", actionType: "mute" + }, { + UUID: "longMuteVid-hash-2", + actionType: "skip" }, { UUID: "longMuteVid-hash-1", actionType: "skip" @@ -421,7 +428,7 @@ describe("getSkipSegmentsByHash", () => { }]; assert.ok(partialDeepEquals(data, expected, false) || partialDeepEquals(data, expected2)); - assert.strictEqual(data[0].segments.length, 2); + assert.strictEqual(data[0].segments.length, 3); done(); }) .catch(err => done(err));