Mercurial > hg > svcore
comparison base/test/TestScaleTickIntervals.h @ 1460:9528c73aa98c horizontal-scale
Simpler & more consistent log scale tick calculation
author | Chris Cannam |
---|---|
date | Wed, 02 May 2018 15:42:36 +0100 |
parents | 3a128665fa6f |
children | 2b2b58ae8b59 |
comparison
equal
deleted
inserted
replaced
1459:3a128665fa6f | 1460:9528c73aa98c |
---|---|
426 void linear_1_1_10() | 426 void linear_1_1_10() |
427 { | 427 { |
428 // pathological range | 428 // pathological range |
429 auto ticks = ScaleTickIntervals::linear({ 1, 1, 10 }); | 429 auto ticks = ScaleTickIntervals::linear({ 1, 1, 10 }); |
430 ScaleTickIntervals::Ticks expected { | 430 ScaleTickIntervals::Ticks expected { |
431 { 1.0, "1.0" } | 431 { 1.0, "1" } |
432 }; | 432 }; |
433 compareTicks(ticks, expected); | 433 compareTicks(ticks, expected); |
434 } | 434 } |
435 | 435 |
436 void linear_0_0_10() | 436 void linear_0_0_10() |
496 void log_1_10_2() | 496 void log_1_10_2() |
497 { | 497 { |
498 auto ticks = ScaleTickIntervals::logarithmic({ 1, 10, 2 }); | 498 auto ticks = ScaleTickIntervals::logarithmic({ 1, 10, 2 }); |
499 ScaleTickIntervals::Ticks expected { | 499 ScaleTickIntervals::Ticks expected { |
500 { 1.0, "1.0" }, | 500 { 1.0, "1.0" }, |
501 { pow(10.0, 0.5), "3.2" }, | 501 { 3.2, "3.2" }, |
502 { 10.0, "10.0" }, | 502 { 10.0, "10" }, |
503 }; | 503 }; |
504 compareTicks(ticks, expected); | 504 compareTicks(ticks, expected); |
505 } | 505 } |
506 | 506 |
507 void log_0_10_2() | 507 void log_0_10_2() |
516 | 516 |
517 void log_pi_avogadro_7() | 517 void log_pi_avogadro_7() |
518 { | 518 { |
519 auto ticks = ScaleTickIntervals::logarithmic({ M_PI, 6.022140857e23, 7 }); | 519 auto ticks = ScaleTickIntervals::logarithmic({ M_PI, 6.022140857e23, 7 }); |
520 ScaleTickIntervals::Ticks expected { | 520 ScaleTickIntervals::Ticks expected { |
521 { 1000, "1000.0" }, | 521 { 1000, "1000" }, |
522 { 1e+06, "1e+06" }, | 522 { 1e+06, "1e+06" }, |
523 { 1e+09, "1e+09" }, | 523 { 1e+09, "1e+09" }, |
524 { 1e+12, "1e+12" }, | 524 { 1e+12, "1e+12" }, |
525 { 1e+15, "1e+15" }, | 525 { 1e+15, "1e+15" }, |
526 { 1e+18, "1e+18" }, | 526 { 1e+18, "1e+18" }, |
531 | 531 |
532 void log_0p465_778_10() | 532 void log_0p465_778_10() |
533 { | 533 { |
534 auto ticks = ScaleTickIntervals::logarithmic({ 0.465, 778.08, 10 }); | 534 auto ticks = ScaleTickIntervals::logarithmic({ 0.465, 778.08, 10 }); |
535 ScaleTickIntervals::Ticks expected { | 535 ScaleTickIntervals::Ticks expected { |
536 { 0.5, "0.5" }, | 536 { 0.5, "0.50" }, |
537 { 1, "1.0" }, | 537 { 1, "1.0" }, |
538 { 2, "2.0" }, | 538 { 2, "2.0" }, |
539 { 4, "4.0" }, | 539 { 4, "4.0" }, |
540 { 8, "8.0" }, | 540 { 8, "8.0" }, |
541 { 16, "16.0" }, | 541 { 16, "16" }, |
542 { 32, "32.0" }, | 542 { 32, "32" }, |
543 { 64, "64.0" }, | 543 { 64, "64" }, |
544 { 128, "128.0" }, | 544 { 130, "130" }, |
545 { 256, "256.0" }, | 545 { 260, "260" }, |
546 { 512, "512.0" }, | 546 { 510, "510" }, |
547 }; | 547 }; |
548 compareTicks(ticks, expected); | 548 compareTicks(ticks, expected); |
549 } | 549 } |
550 | 550 |
551 void log_1_10k_10() | 551 void log_1_10k_10() |
552 { | 552 { |
553 auto ticks = ScaleTickIntervals::logarithmic({ 1.0, 10000.0, 10 }); | 553 auto ticks = ScaleTickIntervals::logarithmic({ 1.0, 10000.0, 10 }); |
554 ScaleTickIntervals::Ticks expected { | 554 ScaleTickIntervals::Ticks expected { |
555 { 1.0, "1.0" }, | 555 { 1.0, "1.0" }, |
556 { 2.5, "2.5" }, | 556 { 2.5, "2.5" }, |
557 { 6.0, "6.0" }, | 557 { 6.3, "6.3" }, |
558 { 16.0, "16.0" }, | 558 { 16.0, "16" }, |
559 { 40.0, "40.0" }, | 559 { 40.0, "40" }, |
560 { 100.0, "100.0" }, | 560 { 100.0, "100" }, |
561 { 250.0, "250.0" }, | 561 { 250.0, "250" }, |
562 { 600.0, "600.0" }, | 562 { 630.0, "630" }, |
563 { 1600.0, "1600.0" }, | 563 { 1600.0, "1600" }, |
564 { 4000.0, "4000.0" }, | 564 { 4000.0, "4000" }, |
565 { 10000.0, "1e+04" }, | 565 { 10000.0, "1e+04" }, |
566 }; | 566 }; |
567 compareTicks(ticks, expected, true); | 567 compareTicks(ticks, expected, true); |
568 } | 568 } |
569 | 569 |
585 void log_80_800k_10() | 585 void log_80_800k_10() |
586 { | 586 { |
587 auto ticks = ScaleTickIntervals::logarithmic({ 80.0, 800000.0, 10 }); | 587 auto ticks = ScaleTickIntervals::logarithmic({ 80.0, 800000.0, 10 }); |
588 ScaleTickIntervals::Ticks expected { | 588 ScaleTickIntervals::Ticks expected { |
589 { 100, "100" }, | 589 { 100, "100" }, |
590 { 251, "251" }, | 590 { 250, "250" }, |
591 { 631, "631" }, | 591 { 630, "630" }, |
592 { 1580, "1580" }, | 592 { 1600, "1600" }, |
593 { 3980, "3980" }, | 593 { 4000, "4000" }, |
594 { 10000, "10000" }, | 594 { 10000, "1e+04" }, |
595 { 25100, "2.5e+04" }, | 595 { 25000, "2.5e+04" }, |
596 { 63100, "6.3e+04" }, | 596 { 63000, "6.3e+04" }, |
597 { 160000, "1.6e+05" }, | 597 { 160000, "1.6e+05" }, |
598 { 400000, "4e+05" }, | 598 { 400000, "4e+05" }, |
599 }; | 599 }; |
600 compareTicks(ticks, expected, true); | 600 compareTicks(ticks, expected, true); |
601 } | 601 } |