phaser
Version:
A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers from the team at Phaser Studio Inc.
90 lines (71 loc) • 2.49 kB
JavaScript
var GetCenter = require('../../../src/geom/rectangle/GetCenter');
describe('Phaser.Geom.Rectangle.GetCenter', function ()
{
it('should return a new Vector2 when no out parameter is provided', function ()
{
var rect = { centerX: 50, centerY: 50 };
var result = GetCenter(rect);
expect(result).toBeDefined();
expect(typeof result.x).toBe('number');
expect(typeof result.y).toBe('number');
});
it('should return the center of a rectangle', function ()
{
var rect = { centerX: 100, centerY: 75 };
var result = GetCenter(rect);
expect(result.x).toBe(100);
expect(result.y).toBe(75);
});
it('should update the provided out object', function ()
{
var rect = { centerX: 40, centerY: 60 };
var out = { x: 0, y: 0 };
var result = GetCenter(rect, out);
expect(result).toBe(out);
expect(out.x).toBe(40);
expect(out.y).toBe(60);
});
it('should return the same out object that was passed in', function ()
{
var rect = { centerX: 10, centerY: 20 };
var out = { x: 0, y: 0 };
var result = GetCenter(rect, out);
expect(result).toBe(out);
});
it('should handle a rectangle at the origin', function ()
{
var rect = { centerX: 0, centerY: 0 };
var result = GetCenter(rect);
expect(result.x).toBe(0);
expect(result.y).toBe(0);
});
it('should handle negative center coordinates', function ()
{
var rect = { centerX: -50, centerY: -30 };
var result = GetCenter(rect);
expect(result.x).toBe(-50);
expect(result.y).toBe(-30);
});
it('should handle floating point center coordinates', function ()
{
var rect = { centerX: 10.5, centerY: 20.5 };
var result = GetCenter(rect);
expect(result.x).toBeCloseTo(10.5);
expect(result.y).toBeCloseTo(20.5);
});
it('should handle large coordinate values', function ()
{
var rect = { centerX: 999999, centerY: 888888 };
var result = GetCenter(rect);
expect(result.x).toBe(999999);
expect(result.y).toBe(888888);
});
it('should overwrite existing values in the out object', function ()
{
var rect = { centerX: 5, centerY: 10 };
var out = { x: 100, y: 200 };
GetCenter(rect, out);
expect(out.x).toBe(5);
expect(out.y).toBe(10);
});
});