Mercurial > hg > orthanc
comparison UnitTestsSources/ImageProcessingTests.cpp @ 3504:18566f9e1831
unit testing new functions in ImageProcessing
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 27 Aug 2019 14:26:04 +0200 |
parents | 46cf170ba121 |
children | 4066998150ef |
comparison
equal
deleted
inserted
replaced
3503:46cf170ba121 | 3504:18566f9e1831 |
---|---|
276 unsigned int y, | 276 unsigned int y, |
277 uint8_t value) | 277 uint8_t value) |
278 { | 278 { |
279 PixelTraits<PixelFormat_Grayscale8>::PixelType p; | 279 PixelTraits<PixelFormat_Grayscale8>::PixelType p; |
280 ImageTraits<PixelFormat_Grayscale8>::GetPixel(p, image, x, y); | 280 ImageTraits<PixelFormat_Grayscale8>::GetPixel(p, image, x, y); |
281 if (p != value) printf("%d %d\n", p, value); | |
281 return p == value; | 282 return p == value; |
282 } | 283 } |
283 | 284 |
284 static void SetRGB24Pixel(ImageAccessor& image, | 285 static void SetRGB24Pixel(ImageAccessor& image, |
285 unsigned int x, | 286 unsigned int x, |
302 uint8_t green, | 303 uint8_t green, |
303 uint8_t blue) | 304 uint8_t blue) |
304 { | 305 { |
305 PixelTraits<PixelFormat_RGB24>::PixelType p; | 306 PixelTraits<PixelFormat_RGB24>::PixelType p; |
306 ImageTraits<PixelFormat_RGB24>::GetPixel(p, image, x, y); | 307 ImageTraits<PixelFormat_RGB24>::GetPixel(p, image, x, y); |
307 return (p.red_ == red && | 308 bool ok = (p.red_ == red && |
308 p.green_ == green && | 309 p.green_ == green && |
309 p.blue_ == blue); | 310 p.blue_ == blue); |
311 if (!ok) printf("%d,%d,%d %d,%d,%d\n", p.red_, p.green_, p.blue_, red, green, blue); | |
312 return ok; | |
310 } | 313 } |
311 | 314 |
312 | 315 |
313 TEST(ImageProcessing, FlipGrayscale8) | 316 TEST(ImageProcessing, FlipGrayscale8) |
314 { | 317 { |
465 Image source(PixelFormat_Grayscale8, 2, 2, false); | 468 Image source(PixelFormat_Grayscale8, 2, 2, false); |
466 Image target(PixelFormat_Grayscale8, 0, 0, false); | 469 Image target(PixelFormat_Grayscale8, 0, 0, false); |
467 ImageProcessing::Resize(target, source); | 470 ImageProcessing::Resize(target, source); |
468 } | 471 } |
469 } | 472 } |
473 | |
474 | |
475 TEST(ImageProcessing, Convolution) | |
476 { | |
477 std::vector<float> k1(5, 1); | |
478 std::vector<float> k2(1, 1); | |
479 | |
480 { | |
481 Image image(PixelFormat_Grayscale8, 1, 1, false); | |
482 SetGrayscale8Pixel(image, 0, 0, 100); | |
483 ImageProcessing::SeparableConvolution(image, k1, 2, k2, 0); | |
484 ASSERT_TRUE(TestGrayscale8Pixel(image, 0, 0, 100)); | |
485 ImageProcessing::SeparableConvolution(image, k1, 2, k1, 2); | |
486 ASSERT_TRUE(TestGrayscale8Pixel(image, 0, 0, 100)); | |
487 ImageProcessing::SeparableConvolution(image, k2, 0, k1, 2); | |
488 ASSERT_TRUE(TestGrayscale8Pixel(image, 0, 0, 100)); | |
489 ImageProcessing::SeparableConvolution(image, k2, 0, k2, 0); | |
490 ASSERT_TRUE(TestGrayscale8Pixel(image, 0, 0, 100)); | |
491 } | |
492 | |
493 { | |
494 Image image(PixelFormat_RGB24, 1, 1, false); | |
495 SetRGB24Pixel(image, 0, 0, 10, 20, 30); | |
496 ImageProcessing::SeparableConvolution(image, k1, 2, k2, 0); | |
497 ASSERT_TRUE(TestRGB24Pixel(image, 0, 0, 10, 20, 30)); | |
498 ImageProcessing::SeparableConvolution(image, k1, 2, k1, 2); | |
499 ASSERT_TRUE(TestRGB24Pixel(image, 0, 0, 10, 20, 30)); | |
500 ImageProcessing::SeparableConvolution(image, k2, 0, k1, 2); | |
501 ASSERT_TRUE(TestRGB24Pixel(image, 0, 0, 10, 20, 30)); | |
502 ImageProcessing::SeparableConvolution(image, k2, 0, k2, 0); | |
503 ASSERT_TRUE(TestRGB24Pixel(image, 0, 0, 10, 20, 30)); | |
504 } | |
505 | |
506 { | |
507 Image dirac(PixelFormat_Grayscale8, 9, 1, false); | |
508 ImageProcessing::Set(dirac, 0); | |
509 SetGrayscale8Pixel(dirac, 4, 0, 100); | |
510 | |
511 { | |
512 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
513 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0); | |
514 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); | |
515 ASSERT_TRUE(TestGrayscale8Pixel(*image, 1, 0, 0)); | |
516 ASSERT_TRUE(TestGrayscale8Pixel(*image, 2, 0, 20)); | |
517 ASSERT_TRUE(TestGrayscale8Pixel(*image, 3, 0, 20)); | |
518 ASSERT_TRUE(TestGrayscale8Pixel(*image, 4, 0, 20)); | |
519 ASSERT_TRUE(TestGrayscale8Pixel(*image, 5, 0, 20)); | |
520 ASSERT_TRUE(TestGrayscale8Pixel(*image, 6, 0, 20)); | |
521 ASSERT_TRUE(TestGrayscale8Pixel(*image, 7, 0, 0)); | |
522 ASSERT_TRUE(TestGrayscale8Pixel(*image, 8, 0, 0)); | |
523 } | |
524 | |
525 { | |
526 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
527 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2); | |
528 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); | |
529 ASSERT_TRUE(TestGrayscale8Pixel(*image, 1, 0, 0)); | |
530 ASSERT_TRUE(TestGrayscale8Pixel(*image, 2, 0, 0)); | |
531 ASSERT_TRUE(TestGrayscale8Pixel(*image, 3, 0, 0)); | |
532 ASSERT_TRUE(TestGrayscale8Pixel(*image, 4, 0, 100)); | |
533 ASSERT_TRUE(TestGrayscale8Pixel(*image, 5, 0, 0)); | |
534 ASSERT_TRUE(TestGrayscale8Pixel(*image, 6, 0, 0)); | |
535 ASSERT_TRUE(TestGrayscale8Pixel(*image, 7, 0, 0)); | |
536 ASSERT_TRUE(TestGrayscale8Pixel(*image, 8, 0, 0)); | |
537 } | |
538 | |
539 { | |
540 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
541 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0); | |
542 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); | |
543 ASSERT_TRUE(TestGrayscale8Pixel(*image, 1, 0, 0)); | |
544 ASSERT_TRUE(TestGrayscale8Pixel(*image, 2, 0, 0)); | |
545 ASSERT_TRUE(TestGrayscale8Pixel(*image, 3, 0, 0)); | |
546 ASSERT_TRUE(TestGrayscale8Pixel(*image, 4, 0, 100)); | |
547 ASSERT_TRUE(TestGrayscale8Pixel(*image, 5, 0, 0)); | |
548 ASSERT_TRUE(TestGrayscale8Pixel(*image, 6, 0, 0)); | |
549 ASSERT_TRUE(TestGrayscale8Pixel(*image, 7, 0, 0)); | |
550 ASSERT_TRUE(TestGrayscale8Pixel(*image, 8, 0, 0)); | |
551 } | |
552 } | |
553 | |
554 { | |
555 Image dirac(PixelFormat_Grayscale8, 1, 9, false); | |
556 ImageProcessing::Set(dirac, 0); | |
557 SetGrayscale8Pixel(dirac, 0, 4, 100); | |
558 | |
559 { | |
560 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
561 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2); | |
562 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); | |
563 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 1, 0)); | |
564 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 2, 20)); | |
565 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 3, 20)); | |
566 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 4, 20)); | |
567 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 5, 20)); | |
568 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 6, 20)); | |
569 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 7, 0)); | |
570 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 8, 0)); | |
571 } | |
572 | |
573 { | |
574 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
575 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0); | |
576 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); | |
577 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 1, 0)); | |
578 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 2, 0)); | |
579 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 3, 0)); | |
580 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 4, 100)); | |
581 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 5, 0)); | |
582 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 6, 0)); | |
583 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 7, 0)); | |
584 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 8, 0)); | |
585 } | |
586 | |
587 { | |
588 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
589 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0); | |
590 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); | |
591 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 1, 0)); | |
592 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 2, 0)); | |
593 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 3, 0)); | |
594 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 4, 100)); | |
595 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 5, 0)); | |
596 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 6, 0)); | |
597 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 7, 0)); | |
598 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 8, 0)); | |
599 } | |
600 } | |
601 | |
602 { | |
603 Image dirac(PixelFormat_RGB24, 9, 1, false); | |
604 ImageProcessing::Set(dirac, 0); | |
605 SetRGB24Pixel(dirac, 4, 0, 100, 120, 140); | |
606 | |
607 { | |
608 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
609 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0); | |
610 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); | |
611 ASSERT_TRUE(TestRGB24Pixel(*image, 1, 0, 0, 0, 0)); | |
612 ASSERT_TRUE(TestRGB24Pixel(*image, 2, 0, 20, 24, 28)); | |
613 ASSERT_TRUE(TestRGB24Pixel(*image, 3, 0, 20, 24, 28)); | |
614 ASSERT_TRUE(TestRGB24Pixel(*image, 4, 0, 20, 24, 28)); | |
615 ASSERT_TRUE(TestRGB24Pixel(*image, 5, 0, 20, 24, 28)); | |
616 ASSERT_TRUE(TestRGB24Pixel(*image, 6, 0, 20, 24, 28)); | |
617 ASSERT_TRUE(TestRGB24Pixel(*image, 7, 0, 0, 0, 0)); | |
618 ASSERT_TRUE(TestRGB24Pixel(*image, 8, 0, 0, 0, 0)); | |
619 } | |
620 | |
621 { | |
622 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
623 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2); | |
624 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); | |
625 ASSERT_TRUE(TestRGB24Pixel(*image, 1, 0, 0, 0, 0)); | |
626 ASSERT_TRUE(TestRGB24Pixel(*image, 2, 0, 0, 0, 0)); | |
627 ASSERT_TRUE(TestRGB24Pixel(*image, 3, 0, 0, 0, 0)); | |
628 ASSERT_TRUE(TestRGB24Pixel(*image, 4, 0, 100, 120, 140)); | |
629 ASSERT_TRUE(TestRGB24Pixel(*image, 5, 0, 0, 0, 0)); | |
630 ASSERT_TRUE(TestRGB24Pixel(*image, 6, 0, 0, 0, 0)); | |
631 ASSERT_TRUE(TestRGB24Pixel(*image, 7, 0, 0, 0, 0)); | |
632 ASSERT_TRUE(TestRGB24Pixel(*image, 8, 0, 0, 0, 0)); | |
633 } | |
634 | |
635 { | |
636 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
637 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0); | |
638 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); | |
639 ASSERT_TRUE(TestRGB24Pixel(*image, 1, 0, 0, 0, 0)); | |
640 ASSERT_TRUE(TestRGB24Pixel(*image, 2, 0, 0, 0, 0)); | |
641 ASSERT_TRUE(TestRGB24Pixel(*image, 3, 0, 0, 0, 0)); | |
642 ASSERT_TRUE(TestRGB24Pixel(*image, 4, 0, 100, 120, 140)); | |
643 ASSERT_TRUE(TestRGB24Pixel(*image, 5, 0, 0, 0, 0)); | |
644 ASSERT_TRUE(TestRGB24Pixel(*image, 6, 0, 0, 0, 0)); | |
645 ASSERT_TRUE(TestRGB24Pixel(*image, 7, 0, 0, 0, 0)); | |
646 ASSERT_TRUE(TestRGB24Pixel(*image, 8, 0, 0, 0, 0)); | |
647 } | |
648 } | |
649 | |
650 { | |
651 Image dirac(PixelFormat_RGB24, 1, 9, false); | |
652 ImageProcessing::Set(dirac, 0); | |
653 SetRGB24Pixel(dirac, 0, 4, 100, 120, 140); | |
654 | |
655 { | |
656 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
657 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2); | |
658 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); | |
659 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 1, 0, 0, 0)); | |
660 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 2, 20, 24, 28)); | |
661 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 3, 20, 24, 28)); | |
662 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 4, 20, 24, 28)); | |
663 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 5, 20, 24, 28)); | |
664 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 6, 20, 24, 28)); | |
665 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 7, 0, 0, 0)); | |
666 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 8, 0, 0, 0)); | |
667 } | |
668 | |
669 { | |
670 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
671 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0); | |
672 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); | |
673 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 1, 0, 0, 0)); | |
674 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 2, 0, 0, 0)); | |
675 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 3, 0, 0, 0)); | |
676 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 4, 100, 120, 140)); | |
677 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 5, 0, 0, 0)); | |
678 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 6, 0, 0, 0)); | |
679 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 7, 0, 0, 0)); | |
680 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 8, 0, 0, 0)); | |
681 } | |
682 | |
683 { | |
684 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); | |
685 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0); | |
686 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); | |
687 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 1, 0, 0, 0)); | |
688 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 2, 0, 0, 0)); | |
689 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 3, 0, 0, 0)); | |
690 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 4, 100, 120, 140)); | |
691 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 5, 0, 0, 0)); | |
692 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 6, 0, 0, 0)); | |
693 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 7, 0, 0, 0)); | |
694 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 8, 0, 0, 0)); | |
695 } | |
696 } | |
697 } | |
698 | |
699 | |
700 TEST(ImageProcessing, SmoothGaussian5x5) | |
701 { | |
702 /** | |
703 Test the point spread function, as can be seen in Octave: | |
704 g1 = [ 1 4 6 4 1 ]; | |
705 g1 /= sum(g1); | |
706 g2 = conv2(g1, g1'); | |
707 floor(conv2(diag([ 0 0 100 0 0 ]), g2, 'same')) % red/green channels | |
708 floor(conv2(diag([ 0 0 200 0 0 ]), g2, 'same')) % blue channel | |
709 **/ | |
710 | |
711 { | |
712 Image image(PixelFormat_Grayscale8, 5, 5, false); | |
713 ImageProcessing::Set(image, 0); | |
714 SetGrayscale8Pixel(image, 2, 2, 100); | |
715 ImageProcessing::SmoothGaussian5x5(image); | |
716 | |
717 ASSERT_TRUE(TestGrayscale8Pixel(image, 0, 0, 0)); | |
718 ASSERT_TRUE(TestGrayscale8Pixel(image, 1, 0, 1)); | |
719 ASSERT_TRUE(TestGrayscale8Pixel(image, 2, 0, 2)); | |
720 ASSERT_TRUE(TestGrayscale8Pixel(image, 3, 0, 1)); | |
721 ASSERT_TRUE(TestGrayscale8Pixel(image, 4, 0, 0)); | |
722 ASSERT_TRUE(TestGrayscale8Pixel(image, 0, 1, 1)); | |
723 ASSERT_TRUE(TestGrayscale8Pixel(image, 1, 1, 6)); | |
724 ASSERT_TRUE(TestGrayscale8Pixel(image, 2, 1, 9)); | |
725 ASSERT_TRUE(TestGrayscale8Pixel(image, 3, 1, 6)); | |
726 ASSERT_TRUE(TestGrayscale8Pixel(image, 4, 1, 1)); | |
727 ASSERT_TRUE(TestGrayscale8Pixel(image, 0, 2, 2)); | |
728 ASSERT_TRUE(TestGrayscale8Pixel(image, 1, 2, 9)); | |
729 ASSERT_TRUE(TestGrayscale8Pixel(image, 2, 2, 14)); | |
730 ASSERT_TRUE(TestGrayscale8Pixel(image, 3, 2, 9)); | |
731 ASSERT_TRUE(TestGrayscale8Pixel(image, 4, 2, 2)); | |
732 ASSERT_TRUE(TestGrayscale8Pixel(image, 0, 3, 1)); | |
733 ASSERT_TRUE(TestGrayscale8Pixel(image, 1, 3, 6)); | |
734 ASSERT_TRUE(TestGrayscale8Pixel(image, 2, 3, 9)); | |
735 ASSERT_TRUE(TestGrayscale8Pixel(image, 3, 3, 6)); | |
736 ASSERT_TRUE(TestGrayscale8Pixel(image, 4, 3, 1)); | |
737 ASSERT_TRUE(TestGrayscale8Pixel(image, 0, 4, 0)); | |
738 ASSERT_TRUE(TestGrayscale8Pixel(image, 1, 4, 1)); | |
739 ASSERT_TRUE(TestGrayscale8Pixel(image, 2, 4, 2)); | |
740 ASSERT_TRUE(TestGrayscale8Pixel(image, 3, 4, 1)); | |
741 ASSERT_TRUE(TestGrayscale8Pixel(image, 4, 4, 0)); | |
742 } | |
743 | |
744 { | |
745 Image image(PixelFormat_RGB24, 5, 5, false); | |
746 ImageProcessing::Set(image, 0); | |
747 SetRGB24Pixel(image, 2, 2, 100, 100, 200); | |
748 ImageProcessing::SmoothGaussian5x5(image); | |
749 | |
750 ASSERT_TRUE(TestRGB24Pixel(image, 0, 0, 0, 0, 0)); | |
751 ASSERT_TRUE(TestRGB24Pixel(image, 1, 0, 1, 1, 3)); | |
752 ASSERT_TRUE(TestRGB24Pixel(image, 2, 0, 2, 2, 4)); | |
753 ASSERT_TRUE(TestRGB24Pixel(image, 3, 0, 1, 1, 3)); | |
754 ASSERT_TRUE(TestRGB24Pixel(image, 4, 0, 0, 0, 0)); | |
755 ASSERT_TRUE(TestRGB24Pixel(image, 0, 1, 1, 1, 3)); | |
756 ASSERT_TRUE(TestRGB24Pixel(image, 1, 1, 6, 6, 12)); | |
757 ASSERT_TRUE(TestRGB24Pixel(image, 2, 1, 9, 9, 18)); | |
758 ASSERT_TRUE(TestRGB24Pixel(image, 3, 1, 6, 6, 12)); | |
759 ASSERT_TRUE(TestRGB24Pixel(image, 4, 1, 1, 1, 3)); | |
760 ASSERT_TRUE(TestRGB24Pixel(image, 0, 2, 2, 2, 4)); | |
761 ASSERT_TRUE(TestRGB24Pixel(image, 1, 2, 9, 9, 18)); | |
762 ASSERT_TRUE(TestRGB24Pixel(image, 2, 2, 14, 14, 28)); | |
763 ASSERT_TRUE(TestRGB24Pixel(image, 3, 2, 9, 9, 18)); | |
764 ASSERT_TRUE(TestRGB24Pixel(image, 4, 2, 2, 2, 4)); | |
765 ASSERT_TRUE(TestRGB24Pixel(image, 0, 3, 1, 1, 3)); | |
766 ASSERT_TRUE(TestRGB24Pixel(image, 1, 3, 6, 6, 12)); | |
767 ASSERT_TRUE(TestRGB24Pixel(image, 2, 3, 9, 9, 18)); | |
768 ASSERT_TRUE(TestRGB24Pixel(image, 3, 3, 6, 6, 12)); | |
769 ASSERT_TRUE(TestRGB24Pixel(image, 4, 3, 1, 1, 3)); | |
770 ASSERT_TRUE(TestRGB24Pixel(image, 0, 4, 0, 0, 0)); | |
771 ASSERT_TRUE(TestRGB24Pixel(image, 1, 4, 1, 1, 3)); | |
772 ASSERT_TRUE(TestRGB24Pixel(image, 2, 4, 2, 2, 4)); | |
773 ASSERT_TRUE(TestRGB24Pixel(image, 3, 4, 1, 1, 3)); | |
774 ASSERT_TRUE(TestRGB24Pixel(image, 4, 4, 0, 0, 0)); | |
775 } | |
776 } |