Skip to content

Commit

Permalink
[ramda_v0.26.x] Intersection readonly refactor (#3682)
Browse files Browse the repository at this point in the history
  • Loading branch information
quanlinc authored and pascalduez committed Dec 22, 2019
1 parent 1182cc5 commit 37b38f3
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 8 deletions.
4 changes: 2 additions & 2 deletions definitions/npm/ramda_v0.26.x/flow_v0.104.x-/ramda_v0.26.x.js
Original file line number Diff line number Diff line change
Expand Up @@ -1301,8 +1301,8 @@ declare module ramda {
b: Array<B>
): Array<A>;

declare function intersection<T>(x: Array<T>, y: Array<T>): Array<T>;
declare function intersection<T>(x: Array<T>): (y: Array<T>) => Array<T>;
declare function intersection<T>(xs: $ReadOnlyArray<T>, ys: $ReadOnlyArray<T>): Array<T>;
declare function intersection<T>(xs: $ReadOnlyArray<T>): (ys: $ReadOnlyArray<T>) => Array<T>;

declare function max<T>(x: T): (y: T) => T;
declare function max<T>(x: T, y: T): T;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import _, {
find,
gt,
gte,
intersection,
lt,
lte,
pipe,
Expand Down Expand Up @@ -232,8 +233,6 @@ const _innerJoin: Array<{ [k: string]: mixed, ... }> = _.innerJoin(
[177, 456, 999]
);

const inters: Array<number> = _.intersection(ns, ns);

const pathEqObj: boolean = _.pathEq(["b", 1], 1, objArr);
const pathEqObj2: boolean = _.pathEq(["b", 1])(1)(objArr);

Expand Down Expand Up @@ -314,3 +313,22 @@ const sym: Array<number> = _.symmetricDifference([1, 2, 3, 4], [7, 6, 5, 4, 3]);

const un: Array<number> = _.union([1, 2, 3])([2, 3, 4]);
const un1: Array<{ [k: string]: number, ... }> = _.unionWith(eqA, ls1, ls2);

// Given $ReadOnlyArray is super type of Array, no need to test Array -> $ReadOnlyArray case
describe('intersection', () => {
it('should accept read only input', () => {
const readOnlyArray: $ReadOnlyArray<number> = [1, 2, 3]
const inters1: Array<number> = intersection(readOnlyArray, readOnlyArray)
const inters2: Array<number> = intersection(readOnlyArray)(readOnlyArray)
const inters3: $ReadOnlyArray<number> = intersection(readOnlyArray, readOnlyArray)
const inters4: $ReadOnlyArray<number> = intersection(readOnlyArray)(readOnlyArray)
});

it('should allow mutable array in and out', () => {
const readOnlyArray: Array<number> = [1, 2, 3]
const inters1: Array<number> = intersection(readOnlyArray, readOnlyArray)
const inters2: Array<number> = intersection(readOnlyArray)(readOnlyArray)
const inters3: $ReadOnlyArray<number> = intersection(readOnlyArray, readOnlyArray)
const inters4: $ReadOnlyArray<number> = intersection(readOnlyArray)(readOnlyArray)
});
})
Original file line number Diff line number Diff line change
Expand Up @@ -1267,8 +1267,8 @@ declare module ramda {
b: Array<B>
): Array<A>;

declare function intersection<T>(x: Array<T>, y: Array<T>): Array<T>;
declare function intersection<T>(x: Array<T>): (y: Array<T>) => Array<T>;
declare function intersection<T>(xs: $ReadOnlyArray<T>, ys: $ReadOnlyArray<T>): Array<T>;
declare function intersection<T>(xs: $ReadOnlyArray<T>): (ys: $ReadOnlyArray<T>) => Array<T>;

declare function max<T>(x: T): (y: T) => T;
declare function max<T>(x: T, y: T): T;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import _, {
find,
gt,
gte,
intersection,
lt,
lte,
pipe,
Expand Down Expand Up @@ -232,8 +233,6 @@ const _innerJoin: Array<{ [k: string]: mixed }> = _.innerJoin(
[177, 456, 999]
);

const inters: Array<number> = _.intersection(ns, ns);

const pathEqObj: boolean = _.pathEq(["b", 1], 1, objArr);
const pathEqObj2: boolean = _.pathEq(["b", 1])(1)(objArr);

Expand Down Expand Up @@ -310,3 +309,22 @@ const sym: Array<number> = _.symmetricDifference([1, 2, 3, 4], [7, 6, 5, 4, 3]);

const un: Array<number> = _.union([1, 2, 3])([2, 3, 4]);
const un1: Array<{ [k: string]: number }> = _.unionWith(eqA, ls1, ls2);

// Given $ReadOnlyArray is super type of Array, no need to test Array -> $ReadOnlyArray case
describe('intersection', () => {
it('should accept read only input', () => {
const readOnlyArray: $ReadOnlyArray<number> = [1, 2, 3]
const inters1: Array<number> = intersection(readOnlyArray, readOnlyArray)
const inters2: Array<number> = intersection(readOnlyArray)(readOnlyArray)
const inters3: $ReadOnlyArray<number> = intersection(readOnlyArray, readOnlyArray)
const inters4: $ReadOnlyArray<number> = intersection(readOnlyArray)(readOnlyArray)
});

it('should allow mutable array in and out', () => {
const readOnlyArray: Array<number> = [1, 2, 3]
const inters1: Array<number> = intersection(readOnlyArray, readOnlyArray)
const inters2: Array<number> = intersection(readOnlyArray)(readOnlyArray)
const inters3: $ReadOnlyArray<number> = intersection(readOnlyArray, readOnlyArray)
const inters4: $ReadOnlyArray<number> = intersection(readOnlyArray)(readOnlyArray)
});
})

0 comments on commit 37b38f3

Please sign in to comment.