3 #include "testing/testing.h"
7 TEST(math_color, RGBToHSVRoundtrip)
9 float orig_rgb[3] = {0.1f, 0.2f, 0.3f};
13 EXPECT_V3_NEAR(orig_rgb, rgb, 1
e-5);
16 TEST(math_color, RGBToHSLRoundtrip)
18 float orig_rgb[3] = {0.1f, 0.2f, 0.3f};
22 EXPECT_V3_NEAR(orig_rgb, rgb, 1
e-5);
25 TEST(math_color, RGBToYUVRoundtrip)
27 float orig_rgb[3] = {0.1f, 0.2f, 0.3f};
31 EXPECT_V3_NEAR(orig_rgb, rgb, 1
e-4);
34 TEST(math_color, RGBToYCCRoundtrip)
36 float orig_rgb[3] = {0.1f, 0.2f, 0.3f};
41 EXPECT_V3_NEAR(orig_rgb, rgb, 1
e-3);
45 EXPECT_V3_NEAR(orig_rgb, rgb, 1
e-3);
49 EXPECT_V3_NEAR(orig_rgb, rgb, 1
e-3);
52 TEST(math_color, LinearRGBTosRGBNearZero)
54 float linear_color = 0.002f;
56 EXPECT_NEAR(0.02584f, srgb_color, 1
e-5);
59 TEST(math_color, LinearRGBTosRGB)
61 float linear_color = 0.75f;
63 EXPECT_NEAR(0.880824f, srgb_color, 1
e-5);
66 TEST(math_color, LinearRGBTosRGBRoundtrip)
70 for (i = 0; i <
N; ++i) {
71 float orig_linear_color = (
float)i /
N;
74 EXPECT_NEAR(orig_linear_color, linear_color, 1
e-5);
typedef float(TangentPoint)[2]
void hsv_to_rgb_v(const float hsv[3], float r_rgb[3])
void rgb_to_hsv_v(const float rgb[3], float r_hsv[3])
#define BLI_YUV_ITU_BT709
#define BLI_YCC_JFIF_0_255
void hsl_to_rgb_v(const float hsl[3], float r_rgb[3])
void ycc_to_rgb(float y, float cb, float cr, float *r_r, float *r_g, float *r_b, int colorspace)
#define BLI_YCC_ITU_BT601
void rgb_to_ycc(float r, float g, float b, float *r_y, float *r_cb, float *r_cr, int colorspace)
void rgb_to_yuv(float r, float g, float b, float *r_y, float *r_u, float *r_v, int colorspace)
float srgb_to_linearrgb(float c)
float linearrgb_to_srgb(float c)
void yuv_to_rgb(float y, float u, float v, float *r_r, float *r_g, float *r_b, int colorspace)
void rgb_to_hsl_v(const float rgb[3], float r_hsl[3])
#define BLI_YCC_ITU_BT709
TEST(math_color, RGBToHSVRoundtrip)
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e