UNPKG

dist-javascript-algorithms-and-data-structures

Version:

Algorithms and data-structures implemented on JavaScript

28 lines (24 loc) 2.07 kB
"use strict"; 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)); }); });