UNPKG

step-sequence-generator

Version:

A step sequence generator for figure skating programs

167 lines (166 loc) 10 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vitest_1 = require("vitest"); const get_func_result_js_1 = require("../../utils/test-utils/get-func-result.js"); const MovementLibrary_js_1 = require("./MovementLibrary.js"); const movement_enums_js_1 = require("../../shared/enums/movement-enums.js"); (0, vitest_1.describe)('MovementLibrary', () => { let movementLibrary; const mockMovements = [ { name: 'A', startLeg: movement_enums_js_1.Leg.LEFT }, { name: 'B', startLeg: movement_enums_js_1.Leg.RIGHT }, ]; (0, vitest_1.beforeEach)(() => { movementLibrary = new MovementLibrary_js_1.MovementLibrary(mockMovements); }); (0, vitest_1.describe)('implementation', () => { (0, vitest_1.it)('должен корректно создаваться', () => { (0, vitest_1.expect)(movementLibrary).toBeDefined(); (0, vitest_1.expect)(movementLibrary).toBeInstanceOf(MovementLibrary_js_1.MovementLibrary); }); }); (0, vitest_1.describe)('create', () => { (0, vitest_1.it)('должен вернуть имплиментацию MovementLibrary', () => { const result = movementLibrary.create(mockMovements); (0, vitest_1.expect)(result).toBeInstanceOf(MovementLibrary_js_1.MovementLibrary); }); }); (0, vitest_1.describe)('filterBy', () => { (0, vitest_1.it)('должен вернуть шаг с Leg.LEFT', () => { const input = (m) => m.startLeg === movement_enums_js_1.Leg.LEFT; const expected = [{ name: 'A', startLeg: movement_enums_js_1.Leg.LEFT }]; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterBy', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); }); (0, vitest_1.describe)('filterByLeg', () => { const mockMovements = [ { name: 'A', startLeg: movement_enums_js_1.Leg.LEFT }, { name: 'B', startLeg: movement_enums_js_1.Leg.RIGHT }, { name: 'B', startLeg: movement_enums_js_1.Leg.BOTH }, ]; (0, vitest_1.beforeEach)(() => { movementLibrary = new MovementLibrary_js_1.MovementLibrary(mockMovements); }); (0, vitest_1.it)('должен вернуть массив с movement с Leg.LEFT и Leg.BOTH', () => { const input = movement_enums_js_1.Leg.LEFT; const expected = [ { name: 'A', startLeg: movement_enums_js_1.Leg.LEFT }, { name: 'B', startLeg: movement_enums_js_1.Leg.BOTH }, ]; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByLeg', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); (0, vitest_1.it)('должен вернуть массив с movement с Leg.RIGHT и Leg.BOTH', () => { const input = movement_enums_js_1.Leg.RIGHT; const expected = [ { name: 'B', startLeg: movement_enums_js_1.Leg.RIGHT }, { name: 'B', startLeg: movement_enums_js_1.Leg.BOTH }, ]; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByLeg', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); (0, vitest_1.it)('должен вернуть массив без фильтрации', () => { const input = movement_enums_js_1.Leg.BOTH; const expected = mockMovements; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByLeg', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); }); (0, vitest_1.describe)('filterByEdge', () => { const mockMovements = [ { startEdge: movement_enums_js_1.Edge.INNER }, { startEdge: movement_enums_js_1.Edge.OUTER }, { startEdge: movement_enums_js_1.Edge.TWO_EDGES }, ]; (0, vitest_1.beforeEach)(() => { movementLibrary = new MovementLibrary_js_1.MovementLibrary(mockMovements); }); (0, vitest_1.it)('должен вернуть массив с Edge.INNER и Edge.TWO_EDGES', () => { const input = movement_enums_js_1.Edge.INNER; const expected = [{ startEdge: movement_enums_js_1.Edge.INNER }, { startEdge: movement_enums_js_1.Edge.TWO_EDGES }]; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByEdge', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); (0, vitest_1.it)('должен вернуть массив с Edge.INNER и Edge.TWO_EDGES', () => { const input = movement_enums_js_1.Edge.INNER; const expected = [{ startEdge: movement_enums_js_1.Edge.INNER }, { startEdge: movement_enums_js_1.Edge.TWO_EDGES }]; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByEdge', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); (0, vitest_1.it)('должен вернуть массив без изменений', () => { const input = movement_enums_js_1.Edge.TWO_EDGES; const expected = mockMovements; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByEdge', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); }); (0, vitest_1.describe)('filterByTransitionDirection', () => { const mockMovements = [ { transitionDirection: movement_enums_js_1.TransitionDirection.BACKWARD }, { transitionDirection: movement_enums_js_1.TransitionDirection.FORWARD }, { transitionDirection: movement_enums_js_1.TransitionDirection.NONE }, ]; (0, vitest_1.beforeEach)(() => { movementLibrary = new MovementLibrary_js_1.MovementLibrary(mockMovements); }); (0, vitest_1.it)('должен вернуть массив с TransitionDirection.BACKWARD и TransitionDirection.NONE', () => { const input = movement_enums_js_1.TransitionDirection.BACKWARD; const expected = [ { transitionDirection: movement_enums_js_1.TransitionDirection.BACKWARD }, { transitionDirection: movement_enums_js_1.TransitionDirection.NONE }, ]; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByTransitionDirection', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); (0, vitest_1.it)('должен вернуть массив с TransitionDirection.FORWARD и TransitionDirection.NONE', () => { const input = movement_enums_js_1.TransitionDirection.FORWARD; const expected = [ { transitionDirection: movement_enums_js_1.TransitionDirection.FORWARD }, { transitionDirection: movement_enums_js_1.TransitionDirection.NONE }, ]; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByTransitionDirection', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); (0, vitest_1.it)('должен вернуть массив без изменений', () => { const input = movement_enums_js_1.TransitionDirection.NONE; const expected = mockMovements; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByTransitionDirection', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); }); (0, vitest_1.describe)('filterByRotationDirection', () => { const mockMovements = [ { rotationDirection: movement_enums_js_1.RotationDirection.CLOCKWISE }, { rotationDirection: movement_enums_js_1.RotationDirection.COUNTERCLOCKWISE }, { rotationDirection: movement_enums_js_1.RotationDirection.NONE }, ]; (0, vitest_1.beforeEach)(() => { movementLibrary = new MovementLibrary_js_1.MovementLibrary(mockMovements); }); (0, vitest_1.it)('должен вернуть массив с RotationDirection.CLOCKWISE и RotationDirection.NONE', () => { const input = movement_enums_js_1.RotationDirection.CLOCKWISE; const expected = [ { rotationDirection: movement_enums_js_1.RotationDirection.CLOCKWISE }, { rotationDirection: movement_enums_js_1.RotationDirection.NONE }, ]; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByRotationDirection', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); (0, vitest_1.it)('должен вернуть массив с RotationDirection.COUNTERCLOCKWISE и RotationDirection.NONE', () => { const input = movement_enums_js_1.RotationDirection.COUNTERCLOCKWISE; const expected = [ { rotationDirection: movement_enums_js_1.RotationDirection.COUNTERCLOCKWISE }, { rotationDirection: movement_enums_js_1.RotationDirection.NONE }, ]; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByRotationDirection', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); (0, vitest_1.it)('должен вернуть массив без изменений', () => { const input = movement_enums_js_1.RotationDirection.NONE; const expected = mockMovements; const result = (0, get_func_result_js_1.getFuncResult)(movementLibrary, 'filterByRotationDirection', input); (0, vitest_1.expect)(result.movements).toEqual(expected); }); }); });