@@ -383,6 +383,165 @@ describe('Hodograph class, import via default', () => {
383
383
assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 0 ] . fill ( ) ,
384
384
'none' , 'fill' ) ;
385
385
} ) ;
386
+ describe ( 'segments' , ( ) => {
387
+ it ( 'test one' , ( ) => {
388
+ const sounding = new Sounding ( ) ;
389
+ Array . from ( { length : 20 } , ( v , i ) => i ) . map ( i => {
390
+ sounding . addLevel ( {
391
+ pres : 1000 - i * 50 ,
392
+ wspd : Math . random ( ) * 100 ,
393
+ wdir : Math . random ( ) * 360
394
+ } ) ;
395
+ } ) ;
396
+ const diagramSounding = new DiagramSounding ( sounding , {
397
+ hodograph : {
398
+ segments : [ {
399
+ minPressure : 850 ,
400
+ style : {
401
+ color : 'red'
402
+ }
403
+ } , {
404
+ maxPressure : 800 ,
405
+ minPressure : 700 ,
406
+ style : {
407
+ color : 'orange'
408
+ }
409
+ } , {
410
+ maxPressure : 499 ,
411
+ minPressure : 401 ,
412
+ style : {
413
+ color : 'yellow'
414
+ }
415
+ } , {
416
+ maxPressure : 60 ,
417
+ style : {
418
+ color : 'violet'
419
+ }
420
+ } ]
421
+ }
422
+ } ) ;
423
+ const hodograph = new Hodograph ( {
424
+ svgNode : SVG ( ) . size ( 300 , 300 ) ,
425
+ x : 0 ,
426
+ y : 0 ,
427
+ width : 100 ,
428
+ height : 100
429
+ } ) ;
430
+ hodograph . addSounding ( diagramSounding ) ;
431
+ assert . ok ( hodograph . _svgNodeData . children ( ) [ 0 ] . visible ( ) , 'visible' ) ;
432
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) . length ,
433
+ 6 , 'polyline count' ) ;
434
+ hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( )
435
+ . map ( n => assert . equal ( n . type , 'polyline' , 'SVG node type' ) ) ;
436
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 0 ] . array ( ) . length ,
437
+ 2 , '[0]: point count' ) ;
438
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 0 ] . stroke ( ) ,
439
+ 'black' , '[0]: color' ) ;
440
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 1 ] . array ( ) . length ,
441
+ 14 , '[1]: point count' ) ;
442
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 1 ] . stroke ( ) ,
443
+ 'black' , '[1]: color' ) ;
444
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 2 ] . array ( ) . length ,
445
+ 4 , '[2]: point count' ) ;
446
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 2 ] . stroke ( ) ,
447
+ 'red' , '[2]: color' ) ;
448
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 3 ] . array ( ) . length ,
449
+ 3 , '[3]: point count' ) ;
450
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 3 ] . stroke ( ) ,
451
+ 'orange' , '[3]: color' ) ;
452
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 4 ] . array ( ) . length ,
453
+ 1 , '[4]: point count' ) ;
454
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 4 ] . stroke ( ) ,
455
+ 'yellow' , '[4]: color' ) ;
456
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 5 ] . array ( ) . length ,
457
+ 1 , '[5]: point count' ) ;
458
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 5 ] . stroke ( ) ,
459
+ 'violet' , '[5]: color' ) ;
460
+ } ) ;
461
+ it ( 'test two' , ( ) => {
462
+ const sounding = new Sounding ( ) ;
463
+ Array . from ( { length : 20 } , ( v , i ) => i ) . map ( i => {
464
+ sounding . addLevel ( {
465
+ pres : 50 + i * 50 ,
466
+ wspd : Math . random ( ) * 100 ,
467
+ wdir : Math . random ( ) * 360
468
+ } ) ;
469
+ } ) ;
470
+ const diagramSounding = new DiagramSounding ( sounding , {
471
+ hodograph : {
472
+ minPressure : 110 ,
473
+ maxPressure : 750 ,
474
+ segments : [ {
475
+ minPressure : 850 ,
476
+ style : {
477
+ color : 'red'
478
+ }
479
+ } , {
480
+ maxPressure : 800 ,
481
+ minPressure : 700 ,
482
+ style : {
483
+ color : 'orange'
484
+ }
485
+ } , {
486
+ maxPressure : 499 ,
487
+ minPressure : 401 ,
488
+ style : {
489
+ color : 'yellow'
490
+ }
491
+ } , {
492
+ maxPressure : 60 ,
493
+ style : {
494
+ color : 'violet'
495
+ }
496
+ } ]
497
+ }
498
+ } ) ;
499
+ const hodograph = new Hodograph ( {
500
+ svgNode : SVG ( ) . size ( 300 , 300 ) ,
501
+ x : 0 ,
502
+ y : 0 ,
503
+ width : 100 ,
504
+ height : 100
505
+ } ) ;
506
+ hodograph . addSounding ( diagramSounding ) ;
507
+ assert . ok ( hodograph . _svgNodeData . children ( ) [ 0 ] . visible ( ) , 'visible' ) ;
508
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) . length ,
509
+ 3 , 'polyline count' ) ;
510
+ hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( )
511
+ . map ( n => assert . equal ( n . type , 'polyline' , 'SVG node type' ) ) ;
512
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 0 ] . array ( ) . length ,
513
+ 12 , '[0]: point count' ) ;
514
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 0 ] . stroke ( ) ,
515
+ 'black' , '[0]: color' ) ;
516
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 1 ] . array ( ) . length ,
517
+ 2 , '[1]: point count' ) ;
518
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 1 ] . stroke ( ) ,
519
+ 'orange' , '[1]: color' ) ;
520
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 2 ] . array ( ) . length ,
521
+ 1 , '[2]: point count' ) ;
522
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 2 ] . stroke ( ) ,
523
+ 'yellow' , '[2]: color' ) ;
524
+ diagramSounding . update ( {
525
+ hodograph : {
526
+ segments : [ {
527
+ minPressure : 850 ,
528
+ style : {
529
+ color : 'red'
530
+ }
531
+ } ]
532
+ }
533
+ } ) ;
534
+ assert . ok ( hodograph . _svgNodeData . children ( ) [ 0 ] . visible ( ) , 'visible' ) ;
535
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) . length ,
536
+ 1 , 'polyline count' ) ;
537
+ hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( )
538
+ . map ( n => assert . equal ( n . type , 'polyline' , 'SVG node type' ) ) ;
539
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 0 ] . array ( ) . length ,
540
+ 13 , '[0]: point count' ) ;
541
+ assert . equal ( hodograph . _svgNodeData . children ( ) [ 0 ] . children ( ) [ 0 ] . children ( ) [ 0 ] . stroke ( ) ,
542
+ 'black' , '[0]: color' ) ;
543
+ } ) ;
544
+ } ) ;
386
545
} ) ;
387
546
} ) ;
388
547
describe ( 'Hodograph class, import via name' , ( ) => {
0 commit comments