@@ -325,6 +325,34 @@ describe("AStar", function(){
325325 aStar . findShortestPath ( vertex3 , vertex1 ) ;
326326 expect ( called ) . to . eql ( false ) ;
327327 } ) ;
328+
329+ it ( "should consider costModifier if passed" , function ( ) {
330+ var v1 = new Kompute . Vector3D ( 0 , 0 , 0 ) ;
331+ var v2 = new Kompute . Vector3D ( 10 , 0 , 0 ) ;
332+ var v3 = new Kompute . Vector3D ( 0 - 50 , 0 ) ;
333+ var graph = new Kompute . Graph ( ) ;
334+ graph . addVertex ( v1 ) ;
335+ graph . addVertex ( v2 ) ;
336+ graph . addVertex ( v3 ) ;
337+ graph . addEdge ( v1 , v2 ) ; // v1 --- v2
338+ graph . addEdge ( v1 , v3 ) ; // | |
339+ graph . addEdge ( v3 , v2 ) ; // v3 -----
340+ var aStar = new Kompute . AStar ( graph ) ;
341+ var path = aStar . findShortestPath ( v1 , v2 , function ( x1 , y1 , z1 , x2 , y2 , z2 ) {
342+ if ( new Kompute . Vector3D ( x1 , y1 , z1 ) . eql ( v1 ) && new Kompute . Vector3D ( x2 , y2 , z2 ) . eql ( v2 ) ) {
343+ return Infinity ;
344+ }
345+
346+ return 0 ;
347+ } ) ;
348+ expect ( path . getCurrentWaypoint ( ) ) . to . eql ( v1 ) ;
349+ path . next ( ) ;
350+ expect ( path . getCurrentWaypoint ( ) ) . to . eql ( v3 ) ;
351+ path . next ( ) ;
352+ expect ( path . getCurrentWaypoint ( ) ) . to . eql ( v2 ) ;
353+ path . next ( ) ;
354+ expect ( path . getCurrentWaypoint ( ) ) . to . eql ( false ) ;
355+ } ) ;
328356} ) ;
329357
330358describe ( "AStar - Integration" , function ( ) {
0 commit comments