feat(clone): Добавлена функция для клонирования мяча и изменения горизонтальной и вертикальной скорости согласно указаному углу

This commit is contained in:
Ilia Mashkov
2026-07-19 17:11:41 +03:00
parent d2cfee3ec3
commit e637d4e62e
2 changed files with 62 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
import { Ball } from '../ball';
import { clone } from './clone';
describe('clone', () => {
it('Возвращает корректное значение при неверных типах аргументов', () => {
expect(clone(null, 20)).toBeNull();
expect(clone(new Ball(0, 0, 10, 3), '20')).toBeNull();
});
it('Клонирует мяч и задает корректное значение скоростей по осям X и Y', () => {
const ball = new Ball(100, 200, 10, 90);
ball.status = 'moving';
ball.horizontalSpeed = 3;
ball.verticalSpeed = 4;
const clonedBall = clone(ball, 90);
expect(clonedBall).toBeInstanceOf(Ball);
expect(clonedBall).not.toEqual(ball);
expect(clonedBall.x).toBe(100);
expect(clonedBall.y).toBe(200);
expect(clonedBall.status).toBe('moving');
expect(clonedBall.horizontalSpeed).toBeCloseTo(-4);
expect(clonedBall.verticalSpeed).toBeCloseTo(3);
});
});