UNPKG

phaser

Version:

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

125 lines (98 loc) 3.52 kB
var GetMidPoint = require('../../../src/geom/line/GetMidPoint'); describe('Phaser.Geom.Line.GetMidPoint', function () { it('should return a Vector2 when no out parameter is provided', function () { var line = { x1: 0, y1: 0, x2: 10, y2: 10 }; var result = GetMidPoint(line); expect(result).toBeDefined(); expect(typeof result.x).toBe('number'); expect(typeof result.y).toBe('number'); }); it('should return the midpoint of a simple horizontal line', function () { var line = { x1: 0, y1: 0, x2: 10, y2: 0 }; var result = GetMidPoint(line); expect(result.x).toBe(5); expect(result.y).toBe(0); }); it('should return the midpoint of a simple vertical line', function () { var line = { x1: 0, y1: 0, x2: 0, y2: 10 }; var result = GetMidPoint(line); expect(result.x).toBe(0); expect(result.y).toBe(5); }); it('should return the midpoint of a diagonal line', function () { var line = { x1: 0, y1: 0, x2: 10, y2: 10 }; var result = GetMidPoint(line); expect(result.x).toBe(5); expect(result.y).toBe(5); }); it('should populate a provided out object', function () { var line = { x1: 0, y1: 0, x2: 10, y2: 10 }; var out = { x: 0, y: 0 }; var result = GetMidPoint(line, out); expect(result).toBe(out); expect(out.x).toBe(5); expect(out.y).toBe(5); }); it('should return the same out object that was passed in', function () { var line = { x1: 2, y1: 4, x2: 8, y2: 12 }; var out = { x: 0, y: 0 }; var result = GetMidPoint(line, out); expect(result).toBe(out); }); it('should work with negative coordinates', function () { var line = { x1: -10, y1: -10, x2: 10, y2: 10 }; var result = GetMidPoint(line); expect(result.x).toBe(0); expect(result.y).toBe(0); }); it('should work with lines in negative space', function () { var line = { x1: -20, y1: -30, x2: -10, y2: -10 }; var result = GetMidPoint(line); expect(result.x).toBe(-15); expect(result.y).toBe(-20); }); it('should return the start point when both endpoints are the same', function () { var line = { x1: 5, y1: 7, x2: 5, y2: 7 }; var result = GetMidPoint(line); expect(result.x).toBe(5); expect(result.y).toBe(7); }); it('should work with floating point coordinates', function () { var line = { x1: 1.5, y1: 2.5, x2: 4.5, y2: 6.5 }; var result = GetMidPoint(line); expect(result.x).toBeCloseTo(3); expect(result.y).toBeCloseTo(4.5); }); it('should work with large coordinate values', function () { var line = { x1: 1000000, y1: 2000000, x2: 3000000, y2: 4000000 }; var result = GetMidPoint(line); expect(result.x).toBe(2000000); expect(result.y).toBe(3000000); }); it('should work when x1 is greater than x2', function () { var line = { x1: 10, y1: 0, x2: 0, y2: 0 }; var result = GetMidPoint(line); expect(result.x).toBe(5); expect(result.y).toBe(0); }); it('should work when y1 is greater than y2', function () { var line = { x1: 0, y1: 10, x2: 0, y2: 0 }; var result = GetMidPoint(line); expect(result.x).toBe(0); expect(result.y).toBe(5); }); });