diff --git a/test/core/Ellipse.js b/test/core/Ellipse.js new file mode 100644 index 0000000..f2e8234 --- /dev/null +++ b/test/core/Ellipse.js @@ -0,0 +1,71 @@ +'use strict'; + +describe('PIXI.Ellipse', function () +{ + it('should create a new ellipse', function () + { + const ellipse1 = new PIXI.Ellipse(); + + expect(ellipse1.x).to.equal(0); + expect(ellipse1.y).to.equal(0); + expect(ellipse1.width).to.equal(0); + expect(ellipse1.height).to.equal(0); + + const ellipse2 = new PIXI.Ellipse(10, 10, 5, 5); + + expect(ellipse2.x).to.equal(10); + expect(ellipse2.y).to.equal(10); + expect(ellipse2.width).to.equal(5); + expect(ellipse2.height).to.equal(5); + }); + + it('should clone a new ellipse', function () + { + const ellipse1 = new PIXI.Ellipse(10, 10, 5, 5); + + expect(ellipse1.x).to.equal(10); + expect(ellipse1.y).to.equal(10); + expect(ellipse1.width).to.equal(5); + expect(ellipse1.height).to.equal(5); + + const ellipse2 = ellipse1.clone(); + + expect(ellipse2.x).to.equal(10); + expect(ellipse2.y).to.equal(10); + expect(ellipse2.width).to.equal(5); + expect(ellipse2.height).to.equal(5); + }); + + it('should check if point is within ellipse', function () + { + const ellipse1 = new PIXI.Ellipse(10, 10, 5, 5); + + expect(ellipse1.contains(10, 10)).to.be.true; + expect(ellipse1.contains(10, 15)).to.be.true; + expect(ellipse1.contains(15, 10)).to.be.true; + expect(ellipse1.contains(5, 10)).to.be.true; + expect(ellipse1.contains(15, 10)).to.be.true; + + expect(ellipse1.contains(6, 7)).to.be.true; + expect(ellipse1.contains(7, 6)).to.be.true; + expect(ellipse1.contains(7, 7)).to.be.true; + expect(ellipse1.contains(13, 14)).to.be.true; + expect(ellipse1.contains(14, 13)).to.be.true; + + expect(ellipse1.contains(14, 14)).to.be.false; + expect(ellipse1.contains(10, 16)).to.be.false; + expect(ellipse1.contains(11, 15)).to.be.false; + expect(ellipse1.contains(0, 0)).to.be.false; + }); + + it('should return framing rectangle', function () + { + const ellipse1 = new PIXI.Ellipse(10, 10, 5, 5); + const rect1 = ellipse1.getBounds(); + + expect(rect1.left).to.equal(5); + expect(rect1.top).to.equal(5); + expect(rect1.right).to.equal(10); + expect(rect1.bottom).to.equal(10); + }); +}); diff --git a/test/core/Ellipse.js b/test/core/Ellipse.js new file mode 100644 index 0000000..f2e8234 --- /dev/null +++ b/test/core/Ellipse.js @@ -0,0 +1,71 @@ +'use strict'; + +describe('PIXI.Ellipse', function () +{ + it('should create a new ellipse', function () + { + const ellipse1 = new PIXI.Ellipse(); + + expect(ellipse1.x).to.equal(0); + expect(ellipse1.y).to.equal(0); + expect(ellipse1.width).to.equal(0); + expect(ellipse1.height).to.equal(0); + + const ellipse2 = new PIXI.Ellipse(10, 10, 5, 5); + + expect(ellipse2.x).to.equal(10); + expect(ellipse2.y).to.equal(10); + expect(ellipse2.width).to.equal(5); + expect(ellipse2.height).to.equal(5); + }); + + it('should clone a new ellipse', function () + { + const ellipse1 = new PIXI.Ellipse(10, 10, 5, 5); + + expect(ellipse1.x).to.equal(10); + expect(ellipse1.y).to.equal(10); + expect(ellipse1.width).to.equal(5); + expect(ellipse1.height).to.equal(5); + + const ellipse2 = ellipse1.clone(); + + expect(ellipse2.x).to.equal(10); + expect(ellipse2.y).to.equal(10); + expect(ellipse2.width).to.equal(5); + expect(ellipse2.height).to.equal(5); + }); + + it('should check if point is within ellipse', function () + { + const ellipse1 = new PIXI.Ellipse(10, 10, 5, 5); + + expect(ellipse1.contains(10, 10)).to.be.true; + expect(ellipse1.contains(10, 15)).to.be.true; + expect(ellipse1.contains(15, 10)).to.be.true; + expect(ellipse1.contains(5, 10)).to.be.true; + expect(ellipse1.contains(15, 10)).to.be.true; + + expect(ellipse1.contains(6, 7)).to.be.true; + expect(ellipse1.contains(7, 6)).to.be.true; + expect(ellipse1.contains(7, 7)).to.be.true; + expect(ellipse1.contains(13, 14)).to.be.true; + expect(ellipse1.contains(14, 13)).to.be.true; + + expect(ellipse1.contains(14, 14)).to.be.false; + expect(ellipse1.contains(10, 16)).to.be.false; + expect(ellipse1.contains(11, 15)).to.be.false; + expect(ellipse1.contains(0, 0)).to.be.false; + }); + + it('should return framing rectangle', function () + { + const ellipse1 = new PIXI.Ellipse(10, 10, 5, 5); + const rect1 = ellipse1.getBounds(); + + expect(rect1.left).to.equal(5); + expect(rect1.top).to.equal(5); + expect(rect1.right).to.equal(10); + expect(rect1.bottom).to.equal(10); + }); +}); diff --git a/test/core/index.js b/test/core/index.js index f23ce06..5f8dd1b 100755 --- a/test/core/index.js +++ b/test/core/index.js @@ -21,3 +21,4 @@ require('./Circle'); require('./Graphics'); require('./SpriteRenderer'); +require('./Ellipse');