simple-pure-utils
Version:
Funciones puras para manipulación de objetos, arreglos, promesas y observables
95 lines • 7.25 kB
JavaScript
import { applyStringMove, getStringMoves } from "./moveRemove";
test("moveRemove", () => {
const source = Array.from("012345678");
const a = applyStringMove(source, {
type: "move",
sourceIndex: 6,
destIndex: 3
});
expect(a).toEqual(Array.from("012634578"));
const b = applyStringMove(source, {
type: "move",
sourceIndex: 3,
destIndex: 6
});
expect(b).toEqual(Array.from("012456378"));
const c = applyStringMove(source, {
type: "remove",
index: 3
});
expect(c).toEqual(Array.from("01245678"));
const d = applyStringMove(source, {
type: "insert",
index: 4,
value: "9"
});
expect(d).toEqual(Array.from("0123945678"));
const e = applyStringMove(source, {
type: "dup",
sourceIndex: 2,
destIndex: 5
});
expect(e).toEqual(Array.from("0123425678"));
});
test("stringMoves moves", () => {
const source = Array.from("ABCD");
expect(getStringMoves(source, Array.from("ABCD"))).toEqual([]);
expect(getStringMoves(source, Array.from("ABC"))).toEqual([
{
type: "remove",
index: 3
}
]);
expect(getStringMoves(source, Array.from("AB"))).toEqual([
{
type: "remove",
index: 2
}, {
type: "remove",
index: 2
}
]);
expect(getStringMoves(source, Array.from("BACD"))).toEqual([
{
type: "move",
sourceIndex: 1,
destIndex: 0
}
]);
});
test("stringMoves results", () => {
const source = Array.from("ABCD");
function test(dest) {
const destArr = Array.from(dest);
const moves = getStringMoves(source, destArr);
const actualDest = moves.reduce((a, b) => applyStringMove(a, b), source);
expect(actualDest).toEqual(destArr);
}
test("ABABAB");
test("CCCAAA");
test("CCCAAACCC");
test("FABCDF");
test("ABCDF");
test("DCBA");
test("DCCBA");
test("BCAAA");
test("ACD");
test("ABCD");
test("BACD");
test("A");
test("");
test("ABBCD");
test("AAAA");
test("CCCC");
});
test("stringMoves string array", () => {
const source = ["ab", "cd", "ef"];
function test(dest) {
const moves = getStringMoves(source, dest);
const actualDest = moves.reduce((a, b) => applyStringMove(a, b), source);
expect(actualDest).toEqual(dest);
}
test(["ab", "cd", "ef"]);
test(["cd", "ab", "ef"]);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZVJlbW92ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0cmluZ3MvZGlzdGFuY2UvbW92ZVJlbW92ZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9ELElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQ3BCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdkMsTUFBTSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRTtRQUM5QixJQUFJLEVBQUUsTUFBTTtRQUNaLFdBQVcsRUFBRSxDQUFDO1FBQ2QsU0FBUyxFQUFFLENBQUM7S0FDZixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUUzQyxNQUFNLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFO1FBQzlCLElBQUksRUFBRSxNQUFNO1FBQ1osV0FBVyxFQUFFLENBQUM7UUFDZCxTQUFTLEVBQUUsQ0FBQztLQUNmLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBRTNDLE1BQU0sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUU7UUFDOUIsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLLEVBQUUsQ0FBQztLQUNYLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUU7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