UNPKG

phaser

Version:

A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers from the team at Phaser Studio Inc.

97 lines (77 loc) 2.67 kB
var Clone = require('../../../src/geom/circle/Clone'); var Circle = require('../../../src/geom/circle/Circle'); describe('Phaser.Geom.Circle.Clone', function () { it('should return a Circle instance', function () { var source = new Circle(0, 0, 10); var result = Clone(source); expect(result).toBeInstanceOf(Circle); }); it('should copy x, y and radius from the source Circle', function () { var source = new Circle(10, 20, 30); var result = Clone(source); expect(result.x).toBe(10); expect(result.y).toBe(20); expect(result.radius).toBe(30); }); it('should return a new object, not the same reference', function () { var source = new Circle(10, 20, 30); var result = Clone(source); expect(result).not.toBe(source); }); it('should be independent from the source after cloning', function () { var source = new Circle(10, 20, 30); var result = Clone(source); source.x = 99; source.y = 99; source.radius = 99; expect(result.x).toBe(10); expect(result.y).toBe(20); expect(result.radius).toBe(30); }); it('should work with zero values', function () { var source = new Circle(0, 0, 0); var result = Clone(source); expect(result.x).toBe(0); expect(result.y).toBe(0); expect(result.radius).toBe(0); }); it('should work with negative x and y values', function () { var source = new Circle(-50, -100, 25); var result = Clone(source); expect(result.x).toBe(-50); expect(result.y).toBe(-100); expect(result.radius).toBe(25); }); it('should work with floating point values', function () { var source = new Circle(1.5, 2.7, 3.14); var result = Clone(source); expect(result.x).toBeCloseTo(1.5); expect(result.y).toBeCloseTo(2.7); expect(result.radius).toBeCloseTo(3.14); }); it('should accept a plain circle-like object with x, y and radius properties', function () { var source = { x: 5, y: 15, radius: 50 }; var result = Clone(source); expect(result).toBeInstanceOf(Circle); expect(result.x).toBe(5); expect(result.y).toBe(15); expect(result.radius).toBe(50); }); it('should work with large values', function () { var source = new Circle(100000, 200000, 999999); var result = Clone(source); expect(result.x).toBe(100000); expect(result.y).toBe(200000); expect(result.radius).toBe(999999); }); });