Skip to content

Commit 8f92ca2

Browse files
authored
Merge pull request #16859 from gero3/addPlaneUnittests
add Plane unittests
2 parents 95c6dcc + 416c109 commit 8f92ca2

File tree

2 files changed

+47
-9
lines changed

2 files changed

+47
-9
lines changed

src/math/Plane.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ function Plane( normal, constant ) {
1616

1717
Object.assign( Plane.prototype, {
1818

19+
isPlane: true,
20+
1921
set: function ( normal, constant ) {
2022

2123
this.normal.copy( normal );

test/unit/src/math/Plane.tests.js

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { Plane } from '../../../../src/math/Plane';
88
import { Vector3 } from '../../../../src/math/Vector3';
99
import { Line3 } from '../../../../src/math/Line3';
1010
import { Sphere } from '../../../../src/math/Sphere';
11+
import { Box3 } from '../../../../src/math/Box3';
1112
import { Matrix4 } from '../../../../src/math/Matrix4';
1213
import {
1314
x,
@@ -54,9 +55,14 @@ export default QUnit.module( 'Maths', () => {
5455
} );
5556

5657
// PUBLIC STUFF
57-
QUnit.todo( "isPlane", ( assert ) => {
58+
QUnit.test( "isPlane", ( assert ) => {
59+
60+
var a = new Plane();
61+
assert.ok( a.isPlane === true, "Passed!" );
62+
63+
var b = new Vector3();
64+
assert.ok( ! b.isPlane, "Passed!" );
5865

59-
assert.ok( false, "everything's gonna be alright" );
6066

6167
} );
6268

@@ -118,9 +124,13 @@ export default QUnit.module( 'Maths', () => {
118124

119125
} );
120126

121-
QUnit.todo( "clone", ( assert ) => {
127+
QUnit.test( "clone", ( assert ) => {
128+
129+
var a = new Plane( 2.0, 0.5, 0.25 );
130+
var b = a.clone();
131+
132+
assert.ok( a.equals( b ), "clones are equal" );
122133

123-
assert.ok( false, "everything's gonna be alright" );
124134

125135
} );
126136

@@ -229,15 +239,41 @@ export default QUnit.module( 'Maths', () => {
229239

230240
} );
231241

232-
QUnit.todo( "intersectsBox", ( assert ) => {
233-
234-
assert.ok( false, "everything's gonna be alright" );
242+
QUnit.test( "intersectsBox", ( assert ) => {
243+
244+
var a = new Box3( zero3.clone(), one3.clone() );
245+
var b = new Plane( new Vector3( 0, 1, 0 ), 1 );
246+
var c = new Plane( new Vector3( 0, 1, 0 ), 1.25 );
247+
var d = new Plane( new Vector3( 0, - 1, 0 ), 1.25 );
248+
var e = new Plane( new Vector3( 0, 1, 0 ), 0.25 );
249+
var f = new Plane( new Vector3( 0, 1, 0 ), - 0.25 );
250+
var g = new Plane( new Vector3( 0, 1, 0 ), - 0.75 );
251+
var h = new Plane( new Vector3( 0, 1, 0 ), - 1 );
252+
var i = new Plane( new Vector3( 1, 1, 1 ).normalize(), - 1.732 );
253+
var j = new Plane( new Vector3( 1, 1, 1 ).normalize(), - 1.733 );
254+
255+
assert.ok( ! b.intersectsBox( a ), "Passed!" );
256+
assert.ok( ! c.intersectsBox( a ), "Passed!" );
257+
assert.ok( ! d.intersectsBox( a ), "Passed!" );
258+
assert.ok( ! e.intersectsBox( a ), "Passed!" );
259+
assert.ok( f.intersectsBox( a ), "Passed!" );
260+
assert.ok( g.intersectsBox( a ), "Passed!" );
261+
assert.ok( h.intersectsBox( a ), "Passed!" );
262+
assert.ok( i.intersectsBox( a ), "Passed!" );
263+
assert.ok( ! j.intersectsBox( a ), "Passed!" );
235264

236265
} );
237266

238-
QUnit.todo( "intersectsSphere", ( assert ) => {
267+
QUnit.test( "intersectsSphere", ( assert ) => {
268+
269+
var a = new Sphere( zero3.clone(), 1 );
270+
var b = new Plane( new Vector3( 0, 1, 0 ), 1 );
271+
var c = new Plane( new Vector3( 0, 1, 0 ), 1.25 );
272+
var d = new Plane( new Vector3( 0, - 1, 0 ), 1.25 );
239273

240-
assert.ok( false, "everything's gonna be alright" );
274+
assert.ok( b.intersectsSphere( a ), "Passed!" );
275+
assert.ok( ! c.intersectsSphere( a ), "Passed!" );
276+
assert.ok( ! d.intersectsSphere( a ), "Passed!" );
241277

242278
} );
243279

0 commit comments

Comments
 (0)