@@ -120,28 +120,16 @@ describe('Utils', () => {
120120 } ) ;
121121
122122 describe ( 'indexToPoint' , ( ) => {
123- it ( 'should convert white indices correctly for top board (0-11)' , ( ) => {
124- expect ( indexToPoint ( Color . White , 0 ) ) . toBe ( 12 ) ;
125- expect ( indexToPoint ( Color . White , 5 ) ) . toBe ( 7 ) ;
126- expect ( indexToPoint ( Color . White , 11 ) ) . toBe ( 1 ) ;
127- } ) ;
128-
129- it ( 'should convert white indices correctly for bottom board (12-23)' , ( ) => {
130- expect ( indexToPoint ( Color . White , 12 ) ) . toBe ( 13 ) ;
131- expect ( indexToPoint ( Color . White , 18 ) ) . toBe ( 19 ) ;
132- expect ( indexToPoint ( Color . White , 23 ) ) . toBe ( 24 ) ;
133- } ) ;
134-
135- it ( 'should convert black indices correctly for top board (0-11)' , ( ) => {
136- expect ( indexToPoint ( Color . Black , 0 ) ) . toBe ( 13 ) ;
137- expect ( indexToPoint ( Color . Black , 5 ) ) . toBe ( 18 ) ;
138- expect ( indexToPoint ( Color . Black , 11 ) ) . toBe ( 24 ) ;
139- } ) ;
140-
141- it ( 'should convert black indices correctly for bottom board (12-23)' , ( ) => {
142- expect ( indexToPoint ( Color . Black , 12 ) ) . toBe ( 12 ) ;
143- expect ( indexToPoint ( Color . Black , 18 ) ) . toBe ( 6 ) ;
144- expect ( indexToPoint ( Color . Black , 23 ) ) . toBe ( 1 ) ;
123+ it . each ( [
124+ [ 0 , 13 , 12 ] ,
125+ [ 6 , 19 , 6 ] ,
126+ [ 11 , 24 , 1 ] ,
127+ [ 12 , 12 , 13 ] ,
128+ [ 18 , 6 , 19 ] ,
129+ [ 23 , 1 , 24 ] ,
130+ ] ) ( 'should convert indices correctly' , ( index , white , black ) => {
131+ expect ( indexToPoint ( Color . White , index ) ) . toBe ( white ) ;
132+ expect ( indexToPoint ( Color . Black , index ) ) . toBe ( black ) ;
145133 } ) ;
146134 } ) ;
147135
@@ -361,7 +349,7 @@ describe('Utils', () => {
361349
362350 it ( 'should not include prison entry if all entry points are blocked' , ( ) => {
363351 game . prison = { white : 1 , black : 0 } ;
364- // Block all possible entry points for white from bar (points 8, 9 for dice 3,4)
352+ // Block all possible entry points for white from bar (points 21, 22 for dice 3,4)
365353 game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 2 , - 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] as Game [ 'board' ] ;
366354 const moves = nextMoves ( game ) ;
367355 expect ( moves . has ( - 1 ) ) . toBe ( false ) ;
@@ -451,7 +439,7 @@ describe('Utils', () => {
451439 const result = calculate ( game , 12 , 15 ) ;
452440 expect ( result . state ?. board [ 12 ] ) . toBe ( 4 ) ;
453441 expect ( result . state ?. board [ 15 ] ) . toBe ( 1 ) ;
454- expect ( result . moveLabel ) . toBe ( '13/16 ' ) ;
442+ expect ( result . moveLabel ) . toBe ( '12/9 ' ) ;
455443 } ) ;
456444
457445 it ( 'should handle white hitting black piece' , ( ) => {
@@ -460,33 +448,33 @@ describe('Utils', () => {
460448 expect ( result . state ?. board [ 12 ] ) . toBe ( 4 ) ;
461449 expect ( result . state ?. board [ 15 ] ) . toBe ( 1 ) ;
462450 expect ( result . state ?. prison . black ) . toBe ( 1 ) ;
463- expect ( result . moveLabel ) . toBe ( '13/16 *' ) ;
451+ expect ( result . moveLabel ) . toBe ( '12/9 *' ) ;
464452 } ) ;
465453
466454 it ( 'should handle white bearing off' , ( ) => {
467455 game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 , 0 , 0 , 0 ] as Game [ 'board' ] ;
468456 const result = calculate ( game , 20 , - 1 ) ;
469457 expect ( result . state ?. board [ 20 ] ) . toBe ( 4 ) ;
470458 expect ( result . state ?. home . white ) . toBe ( 1 ) ;
471- expect ( result . moveLabel ) . toBe ( '21 /off' ) ;
459+ expect ( result . moveLabel ) . toBe ( '4 /off' ) ;
472460 } ) ;
473461
474462 it ( 'should handle white re-entering from bar' , ( ) => {
475463 game . prison = { white : 1 , black : 0 } ;
476464 game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] as Game [ 'board' ] ;
477- const result = calculate ( game , Color . White , 20 ) ;
465+ const result = calculate ( game , Color . White , 8 ) ;
478466 expect ( result . state ?. prison . white ) . toBe ( 0 ) ;
479- expect ( result . state ?. board [ 20 ] ) . toBe ( 1 ) ;
467+ expect ( result . state ?. board [ 8 ] ) . toBe ( 1 ) ;
480468 expect ( result . moveLabel ) . toBe ( 'bar/21' ) ;
481469 } ) ;
482470
483471 it ( 'should handle white re-entering from bar and hitting' , ( ) => {
484472 game . prison = { white : 1 , black : 0 } ;
485- game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 1 , 0 , 0 , 0 ] as Game [ 'board' ] ;
486- const result = calculate ( game , Color . White , 20 ) ;
473+ game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , - 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] as Game [ 'board' ] ;
474+ const result = calculate ( game , Color . White , 8 ) ;
487475 expect ( result . state ?. prison . white ) . toBe ( 0 ) ;
488476 expect ( result . state ?. prison . black ) . toBe ( 1 ) ;
489- expect ( result . state ?. board [ 20 ] ) . toBe ( 1 ) ;
477+ expect ( result . state ?. board [ 8 ] ) . toBe ( 1 ) ;
490478 expect ( result . moveLabel ) . toBe ( 'bar/21*' ) ;
491479 } ) ;
492480
@@ -503,7 +491,7 @@ describe('Utils', () => {
503491 const result = calculate ( game , 6 , 9 ) ;
504492 expect ( result . state ?. board [ 6 ] ) . toBe ( - 4 ) ;
505493 expect ( result . state ?. board [ 9 ] ) . toBe ( - 1 ) ;
506- expect ( result . moveLabel ) . toBe ( '19/22 ' ) ;
494+ expect ( result . moveLabel ) . toBe ( '6/3 ' ) ;
507495 } ) ;
508496
509497 it ( 'should handle black hitting white piece' , ( ) => {
@@ -513,7 +501,7 @@ describe('Utils', () => {
513501 expect ( result . state ?. board [ 6 ] ) . toBe ( - 4 ) ;
514502 expect ( result . state ?. board [ 9 ] ) . toBe ( - 1 ) ;
515503 expect ( result . state ?. prison . white ) . toBe ( 1 ) ;
516- expect ( result . moveLabel ) . toBe ( '19/22 *' ) ;
504+ expect ( result . moveLabel ) . toBe ( '6/3 *' ) ;
517505 } ) ;
518506
519507 it ( 'should handle black bearing off' , ( ) => {
@@ -522,7 +510,7 @@ describe('Utils', () => {
522510 const result = calculate ( game , 6 , - 1 ) ;
523511 expect ( result . state ?. board [ 6 ] ) . toBe ( - 4 ) ;
524512 expect ( result . state ?. home . black ) . toBe ( 1 ) ;
525- expect ( result . moveLabel ) . toBe ( '19 /off' ) ;
513+ expect ( result . moveLabel ) . toBe ( '6 /off' ) ;
526514 } ) ;
527515
528516 it ( 'should set game status to GameOver when player bears off all pieces' , ( ) => {
@@ -549,9 +537,9 @@ describe('Utils', () => {
549537 it ( 'should automatically use prison as from when pieces are in prison' , ( ) => {
550538 game . prison = { white : 1 , black : 0 } ;
551539 game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] as Game [ 'board' ] ;
552- const result = calculate ( game , null , 20 ) ;
540+ const result = calculate ( game , null , 8 ) ;
553541 expect ( result . state ?. prison . white ) . toBe ( 0 ) ;
554- expect ( result . state ?. board [ 20 ] ) . toBe ( 1 ) ;
542+ expect ( result . state ?. board [ 8 ] ) . toBe ( 1 ) ;
555543 expect ( result . moveLabel ) . toBe ( 'bar/21' ) ;
556544 } ) ;
557545
@@ -568,28 +556,28 @@ describe('Utils', () => {
568556 game . color = Color . Black ;
569557 game . prison = { white : 0 , black : 1 } ;
570558 game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] as Game [ 'board' ] ;
571- const result = calculate ( game , Color . Black , 9 ) ;
559+ const result = calculate ( game , Color . Black , 21 ) ;
572560 expect ( result . state ?. prison . black ) . toBe ( 0 ) ;
573- expect ( result . state ?. board [ 9 ] ) . toBe ( - 1 ) ;
561+ expect ( result . state ?. board [ 21 ] ) . toBe ( - 1 ) ;
574562 expect ( result . moveLabel ) . toBe ( 'bar/22' ) ;
575563 } ) ;
576564
577565 it ( 'should handle black re-entering from bar and hitting' , ( ) => {
578566 game . color = Color . Black ;
579567 game . prison = { white : 0 , black : 1 } ;
580- game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] as Game [ 'board' ] ;
581- const result = calculate ( game , Color . Black , 9 ) ;
568+ game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 ] as Game [ 'board' ] ;
569+ const result = calculate ( game , Color . Black , 21 ) ;
582570 expect ( result . state ?. prison . black ) . toBe ( 0 ) ;
583571 expect ( result . state ?. prison . white ) . toBe ( 1 ) ;
584- expect ( result . state ?. board [ 9 ] ) . toBe ( - 1 ) ;
572+ expect ( result . state ?. board [ 21 ] ) . toBe ( - 1 ) ;
585573 expect ( result . moveLabel ) . toBe ( 'bar/22*' ) ;
586574 } ) ;
587575
588576 it ( 'should block black re-entering from bar to protected point' , ( ) => {
589577 game . color = Color . Black ;
590578 game . prison = { white : 0 , black : 1 } ;
591- game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] as Game [ 'board' ] ;
592- const result = calculate ( game , Color . Black , 9 ) ;
579+ game . board = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 0 , 0 ] as Game [ 'board' ] ;
580+ const result = calculate ( game , Color . Black , 21 ) ;
593581 expect ( result . state ) . toEqual ( game ) ;
594582 expect ( result . moveLabel ) . toBeUndefined ( ) ;
595583 } ) ;
0 commit comments