@@ -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