dist-javascript-algorithms-and-data-structures
Version:
Algorithms and data-structures implemented on JavaScript
28 lines (24 loc) • 2.07 kB
JavaScript
;
var _permutateWithoutRepetitions = _interopRequireDefault(require("../permutateWithoutRepetitions"));
var _factorial = _interopRequireDefault(require("../../../math/factorial/factorial"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('permutateWithoutRepetitions', () => {
it('should permutate string', () => {
const permutations1 = (0, _permutateWithoutRepetitions.default)(['A']);
expect(permutations1).toEqual([['A']]);
const permutations2 = (0, _permutateWithoutRepetitions.default)(['A', 'B']);
expect(permutations2.length).toBe(2);
expect(permutations2).toEqual([['A', 'B'], ['B', 'A']]);
const permutations6 = (0, _permutateWithoutRepetitions.default)(['A', 'A']);
expect(permutations6.length).toBe(2);
expect(permutations6).toEqual([['A', 'A'], ['A', 'A']]);
const permutations3 = (0, _permutateWithoutRepetitions.default)(['A', 'B', 'C']);
expect(permutations3.length).toBe((0, _factorial.default)(3));
expect(permutations3).toEqual([['A', 'B', 'C'], ['B', 'A', 'C'], ['B', 'C', 'A'], ['A', 'C', 'B'], ['C', 'A', 'B'], ['C', 'B', 'A']]);
const permutations4 = (0, _permutateWithoutRepetitions.default)(['A', 'B', 'C', 'D']);
expect(permutations4.length).toBe((0, _factorial.default)(4));
expect(permutations4).toEqual([['A', 'B', 'C', 'D'], ['B', 'A', 'C', 'D'], ['B', 'C', 'A', 'D'], ['B', 'C', 'D', 'A'], ['A', 'C', 'B', 'D'], ['C', 'A', 'B', 'D'], ['C', 'B', 'A', 'D'], ['C', 'B', 'D', 'A'], ['A', 'C', 'D', 'B'], ['C', 'A', 'D', 'B'], ['C', 'D', 'A', 'B'], ['C', 'D', 'B', 'A'], ['A', 'B', 'D', 'C'], ['B', 'A', 'D', 'C'], ['B', 'D', 'A', 'C'], ['B', 'D', 'C', 'A'], ['A', 'D', 'B', 'C'], ['D', 'A', 'B', 'C'], ['D', 'B', 'A', 'C'], ['D', 'B', 'C', 'A'], ['A', 'D', 'C', 'B'], ['D', 'A', 'C', 'B'], ['D', 'C', 'A', 'B'], ['D', 'C', 'B', 'A']]);
const permutations5 = (0, _permutateWithoutRepetitions.default)(['A', 'B', 'C', 'D', 'E', 'F']);
expect(permutations5.length).toBe((0, _factorial.default)(6));
});
});