33 */
44/* global QUnit */
55
6+ import { Object3D } from '../../../../src/core/Object3D' ;
7+ import { Raycaster } from '../../../../src/core/Raycaster' ;
68import { LOD } from '../../../../src/objects/LOD' ;
79
810export default QUnit . module ( 'Objects' , ( ) => {
911
1012 QUnit . module ( 'LOD' , ( ) => {
1113
1214 // INHERITANCE
13- QUnit . todo ( "Extending" , ( assert ) => {
15+ QUnit . test ( "Extending" , ( assert ) => {
1416
15- assert . ok ( false , "everything's gonna be alright" ) ;
17+ var lod = new LOD ( ) ;
18+
19+ assert . strictEqual ( ( lod instanceof Object3D ) , true , "LOD extends from Object3D" ) ;
1620
1721 } ) ;
1822
@@ -31,9 +35,11 @@ export default QUnit.module( 'Objects', () => {
3135 } ) ;
3236
3337 // PUBLIC STUFF
34- QUnit . todo ( "isLOD" , ( assert ) => {
38+ QUnit . test ( "isLOD" , ( assert ) => {
3539
36- assert . ok ( false , "everything's gonna be alright" ) ;
40+ var lod = new LOD ( ) ;
41+
42+ assert . strictEqual ( lod . isLOD , true , ".isLOD property is defined." ) ;
3743
3844 } ) ;
3945 QUnit . todo ( "copy" , ( assert ) => {
@@ -46,14 +52,40 @@ export default QUnit.module( 'Objects', () => {
4652 assert . ok ( false , "everything's gonna be alright" ) ;
4753
4854 } ) ;
49- QUnit . todo ( "getObjectForDistance" , ( assert ) => {
55+ QUnit . test ( "getObjectForDistance" , ( assert ) => {
5056
51- assert . ok ( false , "everything's gonna be alright" ) ;
57+ var lod = new LOD ( ) ;
58+
59+ var high = new Object3D ( ) ;
60+ var mid = new Object3D ( ) ;
61+ var low = new Object3D ( ) ;
62+
63+ assert . strictEqual ( lod . getObjectForDistance ( 5 ) , null , "Returns null if no LOD levels are defined." ) ;
64+
65+ lod . addLevel ( high , 5 ) ;
66+
67+ assert . strictEqual ( lod . getObjectForDistance ( 0 ) , high , "Returns always the same object if only one LOD level is defined." ) ;
68+ assert . strictEqual ( lod . getObjectForDistance ( 10 ) , high , "Returns always the same object if only one LOD level is defined." ) ;
69+
70+ lod . addLevel ( mid , 25 ) ;
71+ lod . addLevel ( low , 50 ) ;
72+
73+ assert . strictEqual ( lod . getObjectForDistance ( 0 ) , high , "Returns the high resolution object." ) ;
74+ assert . strictEqual ( lod . getObjectForDistance ( 10 ) , high , "Returns the high resolution object." ) ;
75+ assert . strictEqual ( lod . getObjectForDistance ( 25 ) , mid , "Returns the mid resolution object." ) ;
76+ assert . strictEqual ( lod . getObjectForDistance ( 50 ) , low , "Returns the low resolution object." ) ;
77+ assert . strictEqual ( lod . getObjectForDistance ( 60 ) , low , "Returns the low resolution object." ) ;
5278
5379 } ) ;
54- QUnit . todo ( "raycast" , ( assert ) => {
80+ QUnit . test ( "raycast" , ( assert ) => {
5581
56- assert . ok ( false , "everything's gonna be alright" ) ;
82+ var lod = new LOD ( ) ;
83+ var raycaster = new Raycaster ( ) ;
84+ var intersections = [ ] ;
85+
86+ lod . raycast ( raycaster , intersections ) ;
87+
88+ assert . strictEqual ( intersections . length , 0 , "Does not fail if raycasting is used with a LOD object without levels." ) ;
5789
5890 } ) ;
5991 QUnit . todo ( "update" , ( assert ) => {
0 commit comments