@@ -579,7 +579,8 @@ void CheckGammaCompose(OCIO::GammaOpData::Style style1,
579579 OCIO ::GammaOpData::Style style2,
580580 const OCIO ::GammaOpData::Params & params2,
581581 OCIO ::GammaOpData::Style refStyle,
582- const OCIO ::GammaOpData::Params & refParams)
582+ const OCIO ::GammaOpData::Params & refParams,
583+ unsigned line)
583584{
584585 static const OCIO ::GammaOpData::Params paramsA = { 1 . };
585586
@@ -591,12 +592,12 @@ void CheckGammaCompose(OCIO::GammaOpData::Style style1,
591592
592593 const OCIO ::GammaOpDataRcPtr g3 = g1.compose (g2);
593594
594- OCIO_CHECK_EQUAL (g3->getStyle (), refStyle);
595+ OCIO_CHECK_EQUAL_FROM (g3->getStyle (), refStyle, line );
595596
596- OCIO_CHECK_ASSERT (g3->getRedParams () == refParams);
597- OCIO_CHECK_ASSERT (g3->getGreenParams () == refParams);
598- OCIO_CHECK_ASSERT (g3->getBlueParams () == refParams);
599- OCIO_CHECK_ASSERT (g3->getAlphaParams () == paramsA);
597+ OCIO_CHECK_ASSERT_FROM (g3->getRedParams () == refParams, line );
598+ OCIO_CHECK_ASSERT_FROM (g3->getGreenParams () == refParams, line );
599+ OCIO_CHECK_ASSERT_FROM (g3->getBlueParams () == refParams, line );
600+ OCIO_CHECK_ASSERT_FROM (g3->getAlphaParams () == paramsA, line );
600601}
601602
602603};
@@ -610,7 +611,8 @@ OCIO_ADD_TEST(GammaOpData, compose)
610611
611612 CheckGammaCompose (OCIO ::GammaOpData::BASIC_FWD , params1,
612613 OCIO ::GammaOpData::BASIC_FWD , params2,
613- OCIO ::GammaOpData::BASIC_FWD , refParams);
614+ OCIO ::GammaOpData::BASIC_FWD , refParams,
615+ __LINE__);
614616 }
615617
616618 {
@@ -620,7 +622,8 @@ OCIO_ADD_TEST(GammaOpData, compose)
620622
621623 CheckGammaCompose (OCIO ::GammaOpData::BASIC_REV , params1,
622624 OCIO ::GammaOpData::BASIC_REV , params2,
623- OCIO ::GammaOpData::BASIC_REV , refParams);
625+ OCIO ::GammaOpData::BASIC_REV , refParams,
626+ __LINE__);
624627 }
625628
626629 {
@@ -630,7 +633,8 @@ OCIO_ADD_TEST(GammaOpData, compose)
630633
631634 CheckGammaCompose (OCIO ::GammaOpData::BASIC_REV , params1,
632635 OCIO ::GammaOpData::BASIC_FWD , params2,
633- OCIO ::GammaOpData::BASIC_REV , refParams);
636+ OCIO ::GammaOpData::BASIC_REV , refParams,
637+ __LINE__);
634638 }
635639
636640 {
@@ -640,7 +644,78 @@ OCIO_ADD_TEST(GammaOpData, compose)
640644
641645 CheckGammaCompose (OCIO ::GammaOpData::BASIC_REV , params1,
642646 OCIO ::GammaOpData::BASIC_FWD , params2,
643- OCIO ::GammaOpData::BASIC_FWD , refParams);
647+ OCIO ::GammaOpData::BASIC_FWD , refParams,
648+ __LINE__);
649+ }
650+
651+ {
652+ const OCIO ::GammaOpData::Params params1 = { 2 . };
653+ const OCIO ::GammaOpData::Params params2 = { 4 . };
654+ const OCIO ::GammaOpData::Params refParams = { 2 . };
655+
656+ CheckGammaCompose (OCIO ::GammaOpData::BASIC_FWD , params1,
657+ OCIO ::GammaOpData::BASIC_REV , params2,
658+ OCIO ::GammaOpData::BASIC_REV , refParams,
659+ __LINE__);
660+ }
661+
662+ {
663+ const OCIO ::GammaOpData::Params params1 = { 2 . };
664+ const OCIO ::GammaOpData::Params params2 = { 4 . };
665+ const OCIO ::GammaOpData::Params refParams = { 2 . };
666+
667+ CheckGammaCompose (OCIO ::GammaOpData::BASIC_PASS_THRU_FWD , params1,
668+ OCIO ::GammaOpData::BASIC_PASS_THRU_REV , params2,
669+ OCIO ::GammaOpData::BASIC_PASS_THRU_REV , refParams,
670+ __LINE__);
671+ }
672+
673+ {
674+ const OCIO ::GammaOpData::Params params1 = { 2 . };
675+ const OCIO ::GammaOpData::Params params2 = { 4 . };
676+ const OCIO ::GammaOpData::Params refParams = { 2 . };
677+
678+ CheckGammaCompose (OCIO ::GammaOpData::BASIC_MIRROR_FWD , params1,
679+ OCIO ::GammaOpData::BASIC_MIRROR_REV , params2,
680+ OCIO ::GammaOpData::BASIC_MIRROR_REV , refParams,
681+ __LINE__);
682+ }
683+
684+ {
685+ const OCIO ::GammaOpData::Params params1 = { 2 . };
686+ const OCIO ::GammaOpData::Params params2 = { 4 . };
687+ const OCIO ::GammaOpData::Params refParams = { 2 . };
688+
689+ CheckGammaCompose (OCIO ::GammaOpData::BASIC_MIRROR_FWD , params1,
690+ OCIO ::GammaOpData::BASIC_REV , params2,
691+ OCIO ::GammaOpData::BASIC_REV , refParams,
692+ __LINE__);
693+ }
694+
695+ {
696+ const OCIO ::GammaOpData::Params params1 = { 2 . };
697+ const OCIO ::GammaOpData::Params params2 = { 4 . };
698+ const OCIO ::GammaOpData::Params refParams = { 2 . };
699+
700+ CheckGammaCompose (OCIO ::GammaOpData::BASIC_PASS_THRU_FWD , params1,
701+ OCIO ::GammaOpData::BASIC_REV , params2,
702+ OCIO ::GammaOpData::BASIC_REV , refParams,
703+ __LINE__);
704+ }
705+
706+ {
707+ const OCIO ::GammaOpData::Params params1 = { 4 . };
708+ OCIO ::GammaOpData::Params paramsA = { 1 . };
709+ OCIO ::GammaOpData g1 (OCIO ::GammaOpData::BASIC_MIRROR_FWD ,
710+ params1, params1, params1, paramsA);
711+
712+ OCIO ::GammaOpData::Params params2 = { 2 . };
713+ OCIO ::GammaOpData g2 (OCIO ::GammaOpData::BASIC_PASS_THRU_FWD ,
714+ params2, params2, params2, paramsA);
715+
716+ OCIO_CHECK_THROW_WHAT (g1.compose (g2),
717+ OCIO ::Exception,
718+ " GammaOp can only be combined with some GammaOps" );
644719 }
645720
646721 {
0 commit comments