Skip to content

Commit ccffb4e

Browse files
author
Chris Hallberg
committed
Add more rectangle intersection tests.
1 parent ef02224 commit ccffb4e

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

test/rectangle.spec.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,15 @@ describe('Rectangle', () => {
127127
let test = new Rectangle(cx, cy, w * 2, h * 2);
128128
expect(base.intersects(test)).to.be.true;
129129
});
130+
131+
it('returns true when base rect overlaps test rect only on left edge', () => {
132+
let test = new Rectangle(left + 10, top - 10, w, h + 20);
133+
expect(base.intersects(test)).to.be.true;
134+
});
135+
it('returns true when test rect overlaps base rect only on left edge', () => {
136+
let test = new Rectangle(left - 10, top + 10, w, h - 20);
137+
expect(base.intersects(test)).to.be.true;
138+
});
130139
it('returns true when edges line up on the left', () => {
131140
let test = new Rectangle(left - 10, cy, 20, 20);
132141
expect(base.intersects(test)).to.be.true;
@@ -135,6 +144,15 @@ describe('Rectangle', () => {
135144
let test = new Rectangle(left - 10 - 1, cy, 10, 10);
136145
expect(base.intersects(test)).not.to.be.true;
137146
});
147+
148+
it('returns true when base rect overlaps test rect only on right edge', () => {
149+
let test = new Rectangle(left - 10, top - 10, w, h + 20);
150+
expect(base.intersects(test)).to.be.true;
151+
});
152+
it('returns true when test rect overlaps base rect only on right edge', () => {
153+
let test = new Rectangle(left + 10, top + 10, w, h - 20);
154+
expect(base.intersects(test)).to.be.true;
155+
});
138156
it('returns true when edges line up on the right', () => {
139157
let test = new Rectangle(right + 10, cy, 20, 20);
140158
expect(base.intersects(test)).to.be.true;
@@ -143,6 +161,15 @@ describe('Rectangle', () => {
143161
let test = new Rectangle(right + 10 + 1, cy, 10, 10);
144162
expect(base.intersects(test)).not.to.be.true;
145163
});
164+
165+
it('returns true when base rect overlaps test rect only on top edge', () => {
166+
let test = new Rectangle(left - 10, top + 10, w + 20, h);
167+
expect(base.intersects(test)).to.be.true;
168+
});
169+
it('returns true when test rect overlaps base rect only on top edge', () => {
170+
let test = new Rectangle(left + 10, top - 10, w - 20, h);
171+
expect(base.intersects(test)).to.be.true;
172+
});
146173
it('returns true when edges line up on the top', () => {
147174
let test = new Rectangle(cx, top - 10, 20, 20);
148175
expect(base.intersects(test)).to.be.true;
@@ -151,6 +178,15 @@ describe('Rectangle', () => {
151178
let test = new Rectangle(cx, top - 10 - 1, 10, 10);
152179
expect(base.intersects(test)).not.to.be.true;
153180
});
181+
182+
it('returns true when base rect overlaps test rect only on bottom edge', () => {
183+
let test = new Rectangle(left - 10, top - 10, w + 20, h);
184+
expect(base.intersects(test)).to.be.true;
185+
});
186+
it('returns true when test rect overlaps base rect only on bottom edge', () => {
187+
let test = new Rectangle(left + 10, top + 10, w - 20, h);
188+
expect(base.intersects(test)).to.be.true;
189+
});
154190
it('returns true when edges line up on the bottom', () => {
155191
let test = new Rectangle(cx, bottom + 10, 20, 20);
156192
expect(base.intersects(test)).to.be.true;

0 commit comments

Comments
 (0)