aboutsummaryrefslogtreecommitdiffstats
path: root/meowpp.test/src/Colors.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'meowpp.test/src/Colors.cpp')
-rw-r--r--meowpp.test/src/Colors.cpp130
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;
-};