Skip to content

Commit

Permalink
feat(lib): add equal test
Browse files Browse the repository at this point in the history
  • Loading branch information
Draeken authored and Thibault committed Nov 25, 2017
1 parent 8013ee6 commit 93d133c
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
15 changes: 15 additions & 0 deletions lib/lib.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
isBefore,
isDuring,
isEnding,
isEqual,
isMeeting,
isOverlapping,
isStarting,
Expand Down Expand Up @@ -68,6 +69,20 @@ const testFnToIntervals = (
t.throws(fn.bind(null, [{ test: 1 }], { test: 1 }), 'Unrecognized interval format');
};

test('will find equal', t => {
const i1 = { start: 0, end: 42 };
const i2 = { start: 0, end: 42 };
const testOutputFn = t.true.bind(t);
testFnToBoolean(i1, i2, isEqual, testOutputFn);
});

test('will not find equal', t => {
const i1 = { start: 0, end: 9 };
const i2 = { start: 0, end: 8 };
const testOutputFn = t.false.bind(t);
testFnToBoolean(i1, i2, isEqual, testOutputFn);
});

test('will find during', t => {
const i1 = { start: 1, end: 8 };
const i2 = { start: 0, end: 8 };
Expand Down
13 changes: 13 additions & 0 deletions lib/lib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,19 @@ export function isDuring<T extends interval>(intervalA: T, intervalB?: T): any {
return curryBool<T>(arguments.length, intervalA, intervalB, isDuringGen);
}

const isEqualGen = ([a]: IntervalSE[], [b]: IntervalSE[]): boolean => {
return a.start === b.start && a.end === b.end;
};

/**
* Test if one interval is before another.
*/
export function isEqual<T extends interval>(intervalA: T, intervalB: T): boolean;
export function isEqual<T extends interval>(intervalA: T): (intervalB: T) => boolean;
export function isEqual<T extends interval>(intervalA: T, intervalB?: T): any {
return curryBool<T>(arguments.length, intervalA, intervalB, isEqualGen);
}

const propFromNthArg = (n: number, propName: string) => pipe(nthArg(n), prop(propName));

const unifyGen = pipe(
Expand Down

0 comments on commit 93d133c

Please sign in to comment.