@@ -3,7 +3,7 @@ const MatrixLog = require('../index');
3
3
describe ( 'MatrixLog' , ( ) => {
4
4
describe ( '2d' , ( ) => {
5
5
describe ( '.add()' , ( ) => {
6
- test ( 'can work on a smaller than parent pattern' , ( ) => {
6
+ it ( 'can work on a smaller than parent pattern' , ( ) => {
7
7
const x = 0 ;
8
8
const y = 0 ;
9
9
const z = 0 ;
@@ -24,7 +24,7 @@ describe('MatrixLog', () => {
24
24
} ) ;
25
25
} ) ;
26
26
describe ( '.toString()' , ( ) => {
27
- test ( 'repeats for every point logged' , ( ) => {
27
+ it ( 'repeats for every point logged' , ( ) => {
28
28
const matrixLog = new MatrixLog ( 'test-matrix' , 2 , 1 ) ;
29
29
30
30
matrixLog . at ( { x : 0 , y : 0 } )
@@ -361,87 +361,172 @@ describe('MatrixLog', () => {
361
361
} ) ;
362
362
} ) ;
363
363
describe ( '.toString()' , ( ) => {
364
- describe ( 'parent of 2x2 , pattern 4,4' , ( ) => {
365
- test ( '0,0' , ( ) => {
366
- const matrixLog = new MatrixLog ( 'test-matrix' , 2 , 2 ) ;
367
- matrixLog . at ( { x : 0 , y : 0 } )
368
- . add ( { name : 'child-matrix' , x : 0 , y : 0 , width : 4 , height : 4 } )
369
- . add ( { name : 'child-matrix' , x : 0 , y : 1 , width : 4 , height : 4 } )
370
- . add ( { name : 'child-matrix' , x : 1 , y : 0 , width : 4 , height : 4 } )
371
- . add ( { name : 'child-matrix' , x : 1 , y : 1 , width : 4 , height : 4 } ) ;
364
+ describe ( 'parent of 2x2x3 , pattern 4, 4,4' , ( ) => {
365
+ test ( '0,0, ' , ( ) => {
366
+ const matrixLog = new MatrixLog ( 'test-matrix' , 2 , 2 , 3 ) ;
367
+ matrixLog . at ( { x : 0 , y : 0 , z : 2 } )
368
+ . add ( { name : 'child-matrix' , x : 0 , y : 0 , z : 3 , width : 4 , height : 4 , depth : 4 } )
369
+ . add ( { name : 'child-matrix' , x : 0 , y : 1 , z : 3 , width : 4 , height : 4 , depth : 4 } )
370
+ . add ( { name : 'child-matrix' , x : 1 , y : 0 , z : 3 , width : 4 , height : 4 , depth : 4 } )
371
+ . add ( { name : 'child-matrix' , x : 1 , y : 1 , z : 3 , width : 4 , height : 4 , depth : 4 } ) ;
372
372
373
373
console . log ( matrixLog . toString ( 'child-matrix' ) ) ;
374
374
375
375
const lines = matrixLog . toString ( 'child-matrix' ) . split ( / \n / ) ;
376
- expect ( lines . length ) . toBe ( 7 ) ;
377
- expect ( lines [ 0 ] ) . toBe ( 'test-matrix x=0,y=0 child-matrix' ) ;
378
- expect ( lines [ 1 ] ) . toBe ( 'width=2,height=2 width=4,height=4' ) ;
379
- expect ( lines [ 2 ] ) . toBe ( '[*][ ] [*][*][ ][ ]' ) ;
380
- expect ( lines [ 3 ] ) . toBe ( '[ ][ ] [*][*][ ][ ]' ) ;
381
- expect ( lines [ 4 ] ) . toBe ( ' [ ][ ][ ][ ]' ) ;
382
- expect ( lines [ 5 ] ) . toBe ( ' [ ][ ][ ][ ]' ) ;
383
- expect ( lines [ 6 ] ) . toBe ( '' ) ;
384
- } ) ;
385
-
386
- test ( '1,0' , ( ) => {
387
- const matrixLog = new MatrixLog ( 'test-matrix' , 2 , 2 ) ;
388
- matrixLog . at ( { x : 1 , y : 0 } )
389
- . add ( { name : 'child-matrix' , x : 2 , y : 0 , width : 4 , height : 4 } )
390
- . add ( { name : 'child-matrix' , x : 3 , y : 0 , width : 4 , height : 4 } )
391
- . add ( { name : 'child-matrix' , x : 2 , y : 1 , width : 4 , height : 4 } )
392
- . add ( { name : 'child-matrix' , x : 3 , y : 1 , width : 4 , height : 4 } ) ;
393
-
394
-
395
- const lines = matrixLog . toString ( 'child-matrix' ) . split ( / \n / ) ;
396
- expect ( lines . length ) . toBe ( 7 ) ;
397
- expect ( lines [ 0 ] ) . toBe ( 'test-matrix x=1,y=0 child-matrix' ) ;
398
- expect ( lines [ 1 ] ) . toBe ( 'width=2,height=2 width=4,height=4' ) ;
399
- expect ( lines [ 2 ] ) . toBe ( '[ ][*] [ ][ ][*][*]' ) ;
400
- expect ( lines [ 3 ] ) . toBe ( '[ ][ ] [ ][ ][*][*]' ) ;
401
- expect ( lines [ 4 ] ) . toBe ( ' [ ][ ][ ][ ]' ) ;
402
- expect ( lines [ 5 ] ) . toBe ( ' [ ][ ][ ][ ]' ) ;
403
- expect ( lines [ 6 ] ) . toBe ( '' ) ;
376
+ expect ( lines . length ) . toBe ( 12 ) ;
377
+ expect ( lines [ 0 ] ) . toBe ( 'test-matrix x=0,y=0,z=2 child-matrix' ) ;
378
+ expect ( lines [ 1 ] ) . toBe ( 'width=2,height=2,depth=3 width=4,height=4,depth=4' ) ;
379
+ expect ( lines [ 2 ] ) . toBe ( '[ ][ ] [ ][ ] [ ][ ][ ][ ] [ ][ ][ ][ ]' ) ;
380
+ expect ( lines [ 3 ] ) . toBe ( '[ ][ ] [ ][ ] [ ][ ][ ][ ] [ ][ ][ ][ ]' ) ;
381
+ expect ( lines [ 4 ] ) . toBe ( ' [ ][ ][ ][ ] [ ][ ][ ][ ]' ) ;
382
+ expect ( lines [ 5 ] ) . toBe ( '[*][ ] [ ][ ][ ][ ] [ ][ ][ ][ ]' ) ;
383
+ expect ( lines [ 6 ] ) . toBe ( '[ ][ ] ' ) ;
384
+ expect ( lines [ 7 ] ) . toBe ( ' [ ][ ][ ][ ] [*][*][ ][ ]' ) ;
385
+ expect ( lines [ 8 ] ) . toBe ( ' [ ][ ][ ][ ] [*][*][ ][ ]' ) ;
386
+ expect ( lines [ 9 ] ) . toBe ( ' [ ][ ][ ][ ] [ ][ ][ ][ ]' ) ;
387
+ expect ( lines [ 10 ] ) . toBe ( ' [ ][ ][ ][ ] [ ][ ][ ][ ]' ) ;
388
+ expect ( lines [ 11 ] ) . toBe ( '' ) ;
404
389
} ) ;
390
+ } ) ;
391
+ } ) ;
392
+ } ) ;
393
+ describe ( '.getChildLog()' , ( ) => {
394
+ test ( '4,4,4' , ( ) => {
395
+ const matrixLog = new MatrixLog ( 'parent' , 4 , 4 , 4 ) ;
396
+ matrixLog . at ( { x : 0 , y : 0 , z : 0 } ) ;
397
+ matrixLog . add ( {
398
+ name : 'child' ,
399
+ x : 0 ,
400
+ y : 0 ,
401
+ z : 0 ,
402
+ width : 4 ,
403
+ height : 4 ,
404
+ depth : 4
405
+ } ) ;
406
+ matrixLog . add ( {
407
+ name : 'child' ,
408
+ x : 1 ,
409
+ y : 1 ,
410
+ z : 1 ,
411
+ width : 4 ,
412
+ height : 4 ,
413
+ depth : 4
414
+ } ) ;
415
+ matrixLog . add ( {
416
+ name : 'child' ,
417
+ x : 2 ,
418
+ y : 2 ,
419
+ z : 2 ,
420
+ width : 4 ,
421
+ height : 4 ,
422
+ depth : 4
423
+ } ) ;
424
+ matrixLog . add ( {
425
+ name : 'child' ,
426
+ x : 3 ,
427
+ y : 3 ,
428
+ z : 3 ,
429
+ width : 4 ,
430
+ height : 4 ,
431
+ depth : 4
432
+ } ) ;
405
433
406
- test ( '0,1' , ( ) => {
407
- const matrixLog = new MatrixLog ( 'test-matrix' , 2 , 2 ) ;
408
- matrixLog . at ( { x : 0 , y : 1 } )
409
- . add ( { name : 'child-matrix' , x : 0 , y : 2 , width : 4 , height : 4 } )
410
- . add ( { name : 'child-matrix' , x : 1 , y : 2 , width : 4 , height : 4 } )
411
- . add ( { name : 'child-matrix' , x : 0 , y : 3 , width : 4 , height : 4 } )
412
- . add ( { name : 'child-matrix' , x : 1 , y : 3 , width : 4 , height : 4 } ) ;
413
-
414
- const lines = matrixLog . toString ( 'child-matrix' ) . split ( / \n / ) ;
415
- expect ( lines . length ) . toBe ( 7 ) ;
416
- expect ( lines [ 0 ] ) . toBe ( 'test-matrix x=0,y=1 child-matrix' ) ;
417
- expect ( lines [ 1 ] ) . toBe ( 'width=2,height=2 width=4,height=4' ) ;
418
- expect ( lines [ 2 ] ) . toBe ( '[ ][ ] [ ][ ][ ][ ]' ) ;
419
- expect ( lines [ 3 ] ) . toBe ( '[*][ ] [ ][ ][ ][ ]' ) ;
420
- expect ( lines [ 4 ] ) . toBe ( ' [*][*][ ][ ]' ) ;
421
- expect ( lines [ 5 ] ) . toBe ( ' [*][*][ ][ ]' ) ;
422
- expect ( lines [ 6 ] ) . toBe ( '' ) ;
423
- } ) ;
424
-
425
- test ( '1,1' , ( ) => {
426
- const matrixLog = new MatrixLog ( 'test-matrix' , 2 , 2 ) ;
427
-
428
- matrixLog . at ( { x : 1 , y : 1 } )
429
- . add ( { name : 'child-matrix' , x : 2 , y : 2 , width : 4 , height : 4 } )
430
- . add ( { name : 'child-matrix' , x : 3 , y : 2 , width : 4 , height : 4 } )
431
- . add ( { name : 'child-matrix' , x : 2 , y : 3 , width : 4 , height : 4 } )
432
- . add ( { name : 'child-matrix' , x : 3 , y : 3 , width : 4 , height : 4 } ) ;
433
-
434
+ const matrices = matrixLog . getChildLog ( 'child' ) ;
435
+ expect ( matrices ) . toEqual ( [
436
+ [ '[*][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
437
+ [ '[ ][ ][ ][ ]' , '[ ][*][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
438
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][*][ ]' , '[ ][ ][ ][ ]' ] ,
439
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][*]' ]
440
+ ]
441
+ ) ;
442
+ } ) ;
443
+ } ) ;
444
+ describe ( '.getParentLog()' , ( ) => {
445
+ test ( '4,4,4' , ( ) => {
446
+ const matrixLog = new MatrixLog ( 'parent' , 4 , 4 , 4 ) ;
447
+ matrixLog . at ( { x : 0 , y : 0 , z : 0 } ) ;
448
+ expect ( matrixLog . getParentLog ( ) ) . toEqual ( [
449
+ [ '[*][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
450
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
451
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
452
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ]
453
+ ]
454
+ ) ;
455
+ matrixLog . at ( { x : 1 , y : 1 , z : 1 } ) ;
456
+ expect ( matrixLog . getParentLog ( ) ) . toEqual ( [
457
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
458
+ [ '[ ][ ][ ][ ]' , '[ ][*][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
459
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
460
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ]
461
+ ]
462
+ ) ;
463
+ matrixLog . at ( { x : 2 , y : 2 , z : 2 } ) ;
464
+ expect ( matrixLog . getParentLog ( ) ) . toEqual ( [
465
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
466
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
467
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][*][ ]' , '[ ][ ][ ][ ]' ] ,
468
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ]
469
+ ]
470
+ ) ;
471
+ matrixLog . at ( { x : 3 , y : 3 , z : 3 } ) ;
472
+ expect ( matrixLog . getParentLog ( ) ) . toEqual ( [
473
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
474
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
475
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' ] ,
476
+ [ '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][ ]' , '[ ][ ][ ][*]' ]
477
+ ]
478
+ ) ;
479
+ } ) ;
480
+ } ) ;
481
+ describe ( '.logToGrid()' , ( ) => {
482
+ test ( '4,4,4' , ( ) => {
483
+ const matrixLog = new MatrixLog ( 'parent' , 4 , 4 , 4 ) ;
484
+ expect ( matrixLog . logToGrid ( [
485
+ [ '[1][2][3][4]' , '[5][6][7][8]' , '[9][10][11][12]' , '[13][14][15][16]' ] ,
486
+ [ '[17][18][19][20]' , '[21][22][23][24]' , '[25][26][27][28]' , '[29][30][31][32]' ] ,
487
+ [ '[33][34][35][36]' , '[37][38][39][40]' , '[41][42][43][44]' , '[45][46][47][48]' ] ,
488
+ [ '[49][50][51][52]' , '[53][54][55][56]' , '[57][58][59][60]' , '[61][62][63][64]' ]
489
+ ] , 4 ) ) . toEqual ( [
490
+ '[1][2][3][4] [17][18][19][20]' ,
491
+ '[5][6][7][8] [21][22][23][24]' ,
492
+ '[9][10][11][12] [25][26][27][28]' ,
493
+ '[13][14][15][16] [29][30][31][32]' ,
494
+ ' ' ,
495
+ '[33][34][35][36] [49][50][51][52]' ,
496
+ '[37][38][39][40] [53][54][55][56]' ,
497
+ '[41][42][43][44] [57][58][59][60]' ,
498
+ '[45][46][47][48] [61][62][63][64]'
499
+ ]
500
+ ) ;
501
+ } ) ;
502
+ describe ( '.mergeGrids()' , ( ) => {
503
+ test ( '4,4,3' , ( ) => {
504
+ const matrixLog = new MatrixLog ( 'parent' , 4 , 4 , 3 ) ;
505
+ matrixLog . at ( { x : 0 , y : 0 , z : 0 } )
506
+ . add ( {
507
+ name : 'child' ,
508
+ x : 0 ,
509
+ y : 0 ,
510
+ z : 0 ,
511
+ width : 3 ,
512
+ height : 3 ,
513
+ depth : 3 ,
514
+ } ) ;
434
515
435
- const lines = matrixLog . toString ( 'child-matrix' ) . split ( / \n / ) ;
436
- expect ( lines . length ) . toBe ( 7 ) ;
437
- expect ( lines [ 0 ] ) . toBe ( 'test-matrix x=1,y=1 child-matrix' ) ;
438
- expect ( lines [ 1 ] ) . toBe ( 'width=2,height=2 width=4,height=4' ) ;
439
- expect ( lines [ 2 ] ) . toBe ( '[ ][ ] [ ][ ][ ][ ]' ) ;
440
- expect ( lines [ 3 ] ) . toBe ( '[ ][*] [ ][ ][ ][ ]' ) ;
441
- expect ( lines [ 4 ] ) . toBe ( ' [ ][ ][*][*]' ) ;
442
- expect ( lines [ 5 ] ) . toBe ( ' [ ][ ][*][*]' ) ;
443
- expect ( lines [ 6 ] ) . toBe ( '' ) ;
444
- } ) ;
516
+ const parentGrid = matrixLog . logToGrid ( matrixLog . getParentLog ( ) , matrixLog . depth ) ;
517
+ const childGrid = matrixLog . logToGrid ( matrixLog . getChildLog ( 'child' ) , matrixLog . location [ 'child' ] . depth ) ;
518
+
519
+ expect ( matrixLog . mergeGrids ( parentGrid , childGrid ) ) . toEqual ( [
520
+ '[*][ ][ ][ ] [ ][ ][ ][ ]' + ' ' . repeat ( matrixLog . rowSpacing ) + '[*][ ][ ] [ ][ ][ ]' ,
521
+ '[ ][ ][ ][ ] [ ][ ][ ][ ]' + ' ' . repeat ( matrixLog . rowSpacing ) + '[ ][ ][ ] [ ][ ][ ]' ,
522
+ '[ ][ ][ ][ ] [ ][ ][ ][ ]' + ' ' . repeat ( matrixLog . rowSpacing ) + '[ ][ ][ ] [ ][ ][ ]' ,
523
+ '[ ][ ][ ][ ] [ ][ ][ ][ ]' + ' ' . repeat ( matrixLog . rowSpacing ) + ' ' ,
524
+ ' ' + ' ' . repeat ( matrixLog . rowSpacing ) + '[ ][ ][ ]' ,
525
+ '[ ][ ][ ][ ] ' + ' ' . repeat ( matrixLog . rowSpacing ) + '[ ][ ][ ]' ,
526
+ '[ ][ ][ ][ ] ' + ' ' . repeat ( matrixLog . rowSpacing ) + '[ ][ ][ ]' ,
527
+ '[ ][ ][ ][ ]' ,
528
+ '[ ][ ][ ][ ]' ,
529
+ ] ) ;
445
530
} ) ;
446
531
} ) ;
447
532
} ) ;
0 commit comments