diff options
Diffstat (limited to 'meowpp.test/src/Colors.cpp')
-rw-r--r-- | meowpp.test/src/Colors.cpp | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/meowpp.test/src/Colors.cpp b/meowpp.test/src/Colors.cpp deleted file mode 100644 index 3233cf6..0000000 --- a/meowpp.test/src/Colors.cpp +++ /dev/null @@ -1,130 +0,0 @@ -#include "meowpp/colors/RGB.h" -#include "meowpp/colors/YUV.h" -#include "meowpp/colors/HSL.h" -#include "meowpp/colors/HSV.h" -#include "meowpp/utility.h" - -#include "meowpp.h" - -TEST(Colors, "Transformations"){ - meow::RGBf rgb, rgb2; - meow::YUVf yuv, yuv2; - meow::HSLf hsl, hsl2; - meow::HSVf hsv, hsv2; - bool ok = true; - double eps; - eps = 1e-8; - meow::messagePrintf(1, "rgb ---> hsl ---> rgb ---> hsl (eps = %e)", eps); - for(int i = 0; ok && i < 100000; i++){ - rgb.r(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, rgb.rMin(), rgb.rMax())); - rgb.g(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, rgb.gMin(), rgb.gMax())); - rgb.b(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, rgb.bMin(), rgb.bMax())); - meow::RGB_to_HSL(rgb , &hsl ); - meow::HSL_to_RGB(hsl , &rgb2); - meow::RGB_to_HSL(rgb2, &hsl2); - if(meow::noEPS(rgb.r() - rgb2.r(), eps) != 0 || - meow::noEPS(rgb.g() - rgb2.g(), eps) != 0 || - meow::noEPS(rgb.b() - rgb2.b(), eps) != 0) ok = false; - if(meow::noEPS(hsl.h() - hsl2.h(), eps) != 0 || - meow::noEPS(hsl.s() - hsl2.s(), eps) != 0 || - meow::noEPS(hsl.l() - hsl2.l(), eps) != 0) ok = false; - } - if(ok) meow::messagePrintf(-1, "ok!"); - else{ meow::messagePrintf(-1, "fail"); return false; } - // - eps = 1e-8; - meow::messagePrintf(1, "rgb ---> hsv ---> rgb ---> hsv (eps = %e)", eps); - for(int i = 0; ok && i < 100000; i++){ - rgb.r(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, rgb.rMin(), rgb.rMax())); - rgb.g(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, rgb.gMin(), rgb.gMax())); - rgb.b(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, rgb.bMin(), rgb.bMax())); - meow::RGB_to_HSV(rgb , &hsv ); - meow::HSV_to_RGB(hsv , &rgb2); - meow::RGB_to_HSV(rgb2, &hsv2); - if(meow::noEPS(rgb.r() - rgb2.r(), eps) != 0 || - meow::noEPS(rgb.g() - rgb2.g(), eps) != 0 || - meow::noEPS(rgb.b() - rgb2.b(), eps) != 0) ok = false; - if(meow::noEPS(hsv.h() - hsv2.h(), eps) != 0 || - meow::noEPS(hsv.s() - hsv2.s(), eps) != 0 || - meow::noEPS(hsv.v() - hsv2.v(), eps) != 0) ok = false; - } - if(ok) meow::messagePrintf(-1, "ok!"); - else{ meow::messagePrintf(-1, "fail"); return false; } - // - /* - eps = 1e-3; - meow::messagePrintf(1, "yuv ---> hsl ---> yuv ---> hsl"); - for(int i = 0; ok && i < 100000; i++){ - yuv.y(meow::ratioMapping(0, 1, 1.0 * rand() / RAND_MAX, yuv.yMin(), yuv.yMax())); - yuv.u(meow::ratioMapping(0, 1, 1.0 * rand() / RAND_MAX, yuv.uMin(), yuv.uMax())); - yuv.v(meow::ratioMapping(0, 1, 1.0 * rand() / RAND_MAX, yuv.vMin(), yuv.vMax())); - meow::YUV_to_HSL(yuv , &hsl ); - meow::HSL_to_YUV(hsl , &yuv2); - meow::YUV_to_HSL(yuv2, &hsl2); - if(meow::noEPS(yuv.y() - yuv2.y(), eps) != 0 || - meow::noEPS(yuv.u() - yuv2.u(), eps) != 0 || - meow::noEPS(yuv.v() - yuv2.v(), eps) != 0) ok = false; - if(meow::noEPS(hsl.h() - hsl2.h(), eps) != 0 || - meow::noEPS(hsl.s() - hsl2.s(), eps) != 0 || - meow::noEPS(hsl.l() - hsl2.l(), eps) != 0) ok = false; - } - if(ok) meow::messagePrintf(-1, "ok!"); - else{ meow::messagePrintf(-1, "fail"); return false; } - // */ - /* - meow::messagePrintf(1, "yuv ---> hsv ---> yuv ---> hsv"); - for(int i = 0; ok && i < 100000; i++){ - yuv.y(meow::ratioMapping(0, 1, 1.0 * rand() / RAND_MAX, yuv.yMin(), yuv.yMax())); - yuv.u(meow::ratioMapping(0, 1, 1.0 * rand() / RAND_MAX, yuv.uMin(), yuv.uMax())); - yuv.v(meow::ratioMapping(0, 1, 1.0 * rand() / RAND_MAX, yuv.vMin(), yuv.vMax())); - meow::YUV_to_HSV(yuv , &hsv ); - meow::HSV_to_YUV(hsv , &yuv2); - meow::YUV_to_HSV(yuv2, &hsv2); - if(meow::noEPS(yuv.y() - yuv2.y(), eps) != 0 || - meow::noEPS(yuv.u() - yuv2.u(), eps) != 0 || - meow::noEPS(yuv.v() - yuv2.v(), eps) != 0) ok = false; - if(meow::noEPS(hsv.h() - hsv2.h(), eps) != 0 || - meow::noEPS(hsv.s() - hsv2.s(), eps) != 0 || - meow::noEPS(hsv.v() - hsv2.v(), eps) != 0) ok = false; - } - if(ok) meow::messagePrintf(-1, "ok!"); - else{ meow::messagePrintf(-1, "fail"); return false; } - // */ - eps = 1e-3; - meow::messagePrintf(1, "rgb ---> yuv ---> rgb ---> yuv (eps = %e)", eps); - for(int i = 0; ok && i < 100000; i++){ - rgb.r(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, rgb.rMin(), rgb.rMax())); - rgb.g(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, rgb.gMin(), rgb.gMax())); - rgb.b(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, rgb.bMin(), rgb.bMax())); - meow::RGB_to_YUV(rgb , &yuv ); - meow::YUV_to_RGB(yuv , &rgb2); - meow::RGB_to_YUV(rgb2, &yuv2); - if(meow::noEPS(rgb.r() - rgb2.r(), eps) != 0 || - meow::noEPS(rgb.g() - rgb2.g(), eps) != 0 || - meow::noEPS(rgb.b() - rgb2.b(), eps) != 0) ok = false; - if(meow::noEPS(yuv.y() - yuv2.y(), eps) != 0 || - meow::noEPS(yuv.u() - yuv2.u(), eps) != 0 || - meow::noEPS(yuv.v() - yuv2.v(), eps) != 0) ok = false; - } - if(ok) meow::messagePrintf(-1, "ok!"); - else{ meow::messagePrintf(-1, "fail"); return false; } - eps = 1e-8; - meow::messagePrintf(1, "hsl ---> hsv ---> hsl ---> hsv (eps = %e)", eps); - for(int i = 0; ok && i < 100000; i++){ - hsl.h(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, hsl.hMin(), hsl.hMax())); - hsl.s(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, hsl.sMin(), hsl.sMax())); - hsl.l(meow::ratioMapping(0.0, 1.0, 1.0 * rand() / RAND_MAX, hsl.lMin(), hsl.lMax())); - meow::HSL_to_HSV(hsl , &hsv ); - meow::HSV_to_HSL(hsv , &hsl2); - meow::HSL_to_HSV(hsl2, &hsv2); - if(meow::noEPS(hsl.h() - hsl2.h(), eps) != 0 || - meow::noEPS(hsl.s() - hsl2.s(), eps) != 0 || - meow::noEPS(hsl.l() - hsl2.l(), eps) != 0) ok = false; - if(meow::noEPS(hsv.h() - hsv2.h(), eps) != 0 || - meow::noEPS(hsv.s() - hsv2.s(), eps) != 0 || - meow::noEPS(hsv.v() - hsv2.v(), eps) != 0) ok = false; - } - if(ok) meow::messagePrintf(-1, "ok!"); - else{ meow::messagePrintf(-1, "fail"); return false; } - return true; -}; |