tdf#155735: Add tests in basegfx
Add tests for BColorModifier_luminance_to_alpha and
BColorModifier_saturate
Use basegfx::fTools::equal in B3DTuple::operator==,
otherwise some asserts fail with
- Expected: [0.3575, 0.8575, 0.3575]
- Actual : [0.3575, 0.8575, 0.3575]
Although they are equal
Change-Id: Iad6d9ff78a390f5ee2a3e33e479e34d98e751b2e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153394
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/basegfx/test/BColorModifierTest.cxx b/basegfx/test/BColorModifierTest.cxx
index 2371542..0535400 100755
--- a/basegfx/test/BColorModifierTest.cxx
+++ b/basegfx/test/BColorModifierTest.cxx
@@ -173,11 +173,77 @@ public:
CPPUNIT_ASSERT_EQUAL(maYellow, aStack1.getModifiedColor(maBlue));
}
void testSaturate()
{
const basegfx::BColorModifierSharedPtr aBColorModifier
= std::make_shared<basegfx::BColorModifier_saturate>(0.5);
CPPUNIT_ASSERT_EQUAL(maWhite, aBColorModifier->getModifiedColor(maWhite));
CPPUNIT_ASSERT_EQUAL(maGray, aBColorModifier->getModifiedColor(maGray));
CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maBlack));
BColor aExpectedRed(0.6065, 0.1065, 0.1065);
CPPUNIT_ASSERT_EQUAL(aExpectedRed, aBColorModifier->getModifiedColor(maRed));
BColor aExpectedGreen(0.3575, 0.8575, 0.3575);
CPPUNIT_ASSERT_EQUAL(aExpectedGreen, aBColorModifier->getModifiedColor(maGreen));
BColor aExpectedBlue(0.036, 0.036, 0.536);
CPPUNIT_ASSERT_EQUAL(aExpectedBlue, aBColorModifier->getModifiedColor(maBlue));
BColor aExpectedYellow(0.964, 0.964, 0.464);
CPPUNIT_ASSERT_EQUAL(aExpectedYellow, aBColorModifier->getModifiedColor(maYellow));
BColor aExpectedMagenta(0.6425, 0.1425, 0.6425);
CPPUNIT_ASSERT_EQUAL(aExpectedMagenta, aBColorModifier->getModifiedColor(maMagenta));
BColor aExpectedCyan(0.3935, 0.8935, 0.8935);
CPPUNIT_ASSERT_EQUAL(aExpectedCyan, aBColorModifier->getModifiedColor(maCyan));
CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier));
const basegfx::BColorModifierSharedPtr aBColorModifierInvert
= std::make_shared<basegfx::BColorModifier_invert>();
CPPUNIT_ASSERT(*aBColorModifier != *aBColorModifierInvert);
const basegfx::BColorModifierSharedPtr aBColorModifier2
= std::make_shared<basegfx::BColorModifier_saturate>(0.5);
CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier2));
}
void testLuminanceToAlpha()
{
const basegfx::BColorModifierSharedPtr aBColorModifier
= std::make_shared<basegfx::BColorModifier_luminance_to_alpha>();
CPPUNIT_ASSERT_EQUAL(maBlack, aBColorModifier->getModifiedColor(maWhite));
CPPUNIT_ASSERT_EQUAL(maGray, aBColorModifier->getModifiedColor(maGray));
CPPUNIT_ASSERT_EQUAL(maWhite, aBColorModifier->getModifiedColor(maBlack));
BColor aExpectedRed(0.7875, 0.7875, 0.7875);
CPPUNIT_ASSERT_EQUAL(aExpectedRed, aBColorModifier->getModifiedColor(maRed));
BColor aExpectedGreen(0.2846, 0.2846, 0.2846);
CPPUNIT_ASSERT_EQUAL(aExpectedGreen, aBColorModifier->getModifiedColor(maGreen));
BColor aExpectedBlue(0.9279, 0.9279, 0.9279);
CPPUNIT_ASSERT_EQUAL(aExpectedBlue, aBColorModifier->getModifiedColor(maBlue));
BColor aExpectedYellow(0.0721, 0.0721, 0.0721);
CPPUNIT_ASSERT_EQUAL(aExpectedYellow, aBColorModifier->getModifiedColor(maYellow));
BColor aExpectedMagenta(0.7154, 0.7154, 0.7154);
CPPUNIT_ASSERT_EQUAL(aExpectedMagenta, aBColorModifier->getModifiedColor(maMagenta));
BColor aExpectedCyan(0.2125, 0.2125, 0.2125);
CPPUNIT_ASSERT_EQUAL(aExpectedCyan, aBColorModifier->getModifiedColor(maCyan));
CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier));
const basegfx::BColorModifierSharedPtr aBColorModifierInvert
= std::make_shared<basegfx::BColorModifier_invert>();
CPPUNIT_ASSERT(*aBColorModifier != *aBColorModifierInvert);
const basegfx::BColorModifierSharedPtr aBColorModifier2
= std::make_shared<basegfx::BColorModifier_luminance_to_alpha>();
CPPUNIT_ASSERT(aBColorModifier->operator==(*aBColorModifier2));
}
CPPUNIT_TEST_SUITE(bcolormodifier);
CPPUNIT_TEST(testGray);
CPPUNIT_TEST(testInvert);
CPPUNIT_TEST(testReplace);
CPPUNIT_TEST(testStack);
CPPUNIT_TEST(testSaturate);
CPPUNIT_TEST(testLuminanceToAlpha);
CPPUNIT_TEST_SUITE_END();
};
diff --git a/include/basegfx/tuple/b3dtuple.hxx b/include/basegfx/tuple/b3dtuple.hxx
index 7ac6a77..15777b7 100644
--- a/include/basegfx/tuple/b3dtuple.hxx
+++ b/include/basegfx/tuple/b3dtuple.hxx
@@ -112,7 +112,9 @@ namespace basegfx
bool operator==(const B3DTuple& rTup) const
{
return mfX == rTup.mfX && mfY == rTup.mfY && mfZ == rTup.mfZ;
return ::basegfx::fTools::equal(mfX, rTup.mfX) &&
::basegfx::fTools::equal(mfY, rTup.mfY) &&
::basegfx::fTools::equal(mfZ, rTup.mfZ);
}
bool operator!=(const B3DTuple& rTup) const { return !operator==(rTup); }