File indexing completed on 2025-02-02 04:17:44
0001 /* 0002 * SPDX-License-Identifier: GPL-3.0-or-later 0003 */ 0004 0005 #include "TestColorConversion.h" 0006 #include "KoColorConversions.h" 0007 0008 #include <simpletest.h> 0009 0010 void TestColorConversion::testRGBHSV() 0011 { 0012 float r, g, b, h, s, v; 0013 0014 RGBToHSV(1, 0, 0, &h, &s, &v); 0015 QCOMPARE(h, 0.0f); 0016 QCOMPARE(s, 1.0f); 0017 QCOMPARE(v, 1.0f); 0018 0019 RGBToHSV(1, 1, 0, &h, &s, &v); 0020 QCOMPARE(h, 60.0f); 0021 QCOMPARE(s, 1.0f); 0022 QCOMPARE(v, 1.0f); 0023 0024 RGBToHSV(0, 1, 0, &h, &s, &v); 0025 QCOMPARE(h, 120.0f); 0026 QCOMPARE(s, 1.0f); 0027 QCOMPARE(v, 1.0f); 0028 0029 RGBToHSV(0, 1, 1, &h, &s, &v); 0030 QCOMPARE(h, 180.0f); 0031 QCOMPARE(s, 1.0f); 0032 QCOMPARE(v, 1.0f); 0033 0034 RGBToHSV(0, 0, 1, &h, &s, &v); 0035 QCOMPARE(h, 240.0f); 0036 QCOMPARE(s, 1.0f); 0037 QCOMPARE(v, 1.0f); 0038 0039 RGBToHSV(1, 0, 1, &h, &s, &v); 0040 QCOMPARE(h, 300.0f); 0041 QCOMPARE(s, 1.0f); 0042 QCOMPARE(v, 1.0f); 0043 0044 RGBToHSV(0, 0, 0, &h, &s, &v); 0045 QCOMPARE(h, -1.0f); 0046 QCOMPARE(s, 0.0f); 0047 QCOMPARE(v, 0.0f); 0048 0049 RGBToHSV(1, 1, 1, &h, &s, &v); 0050 QCOMPARE(h, -1.0f); 0051 QCOMPARE(s, 0.0f); 0052 QCOMPARE(v, 1.0f); 0053 0054 RGBToHSV(0.5, 0.25, 0.75, &h, &s, &v); 0055 QCOMPARE(h, 270.0f); 0056 QCOMPARE(s, 0.666667f); 0057 QCOMPARE(v, 0.75f); 0058 0059 HSVToRGB(0, 1, 1, &r, &g, &b); 0060 QCOMPARE(r, 1.0f); 0061 QCOMPARE(g, 0.0f); 0062 QCOMPARE(b, 0.0f); 0063 0064 HSVToRGB(60, 1, 1, &r, &g, &b); 0065 QCOMPARE(r, 1.0f); 0066 QCOMPARE(g, 1.0f); 0067 QCOMPARE(b, 0.0f); 0068 0069 HSVToRGB(120, 1, 1, &r, &g, &b); 0070 QCOMPARE(r, 0.0f); 0071 QCOMPARE(g, 1.0f); 0072 QCOMPARE(b, 0.0f); 0073 0074 HSVToRGB(180, 1, 1, &r, &g, &b); 0075 QCOMPARE(r, 0.0f); 0076 QCOMPARE(g, 1.0f); 0077 QCOMPARE(b, 1.0f); 0078 0079 HSVToRGB(240, 1, 1, &r, &g, &b); 0080 QCOMPARE(r, 0.0f); 0081 QCOMPARE(g, 0.0f); 0082 QCOMPARE(b, 1.0f); 0083 0084 HSVToRGB(300, 1, 1, &r, &g, &b); 0085 QCOMPARE(r, 1.0f); 0086 QCOMPARE(g, 0.0f); 0087 QCOMPARE(b, 1.0f); 0088 0089 HSVToRGB(-1, 0, 0, &r, &g, &b); 0090 QCOMPARE(r, 0.0f); 0091 QCOMPARE(g, 0.0f); 0092 QCOMPARE(b, 0.0f); 0093 0094 HSVToRGB(-1, 0, 1, &r, &g, &b); 0095 QCOMPARE(r, 1.0f); 0096 QCOMPARE(g, 1.0f); 0097 QCOMPARE(b, 1.0f); 0098 0099 HSVToRGB(270, 0.666667f, 0.75f, &r, &g, &b); 0100 QCOMPARE(r, 0.5f); 0101 QCOMPARE(g, 0.25f); 0102 QCOMPARE(b, 0.75f); 0103 } 0104 0105 void TestColorConversion::testRGBHSL() 0106 { 0107 float r, g, b, h, s, l; 0108 0109 RGBToHSL(1, 0, 0, &h, &s, &l); 0110 QCOMPARE(h, 0.0f); 0111 QCOMPARE(s, 1.0f); 0112 QCOMPARE(l, 0.5f); 0113 0114 RGBToHSL(1, 1, 0, &h, &s, &l); 0115 QCOMPARE(h, 60.0f); 0116 QCOMPARE(s, 1.0f); 0117 QCOMPARE(l, 0.5f); 0118 0119 RGBToHSL(0, 1, 0, &h, &s, &l); 0120 QCOMPARE(h, 120.0f); 0121 QCOMPARE(s, 1.0f); 0122 QCOMPARE(l, 0.5f); 0123 0124 RGBToHSL(0, 1, 1, &h, &s, &l); 0125 QCOMPARE(h, 180.0f); 0126 QCOMPARE(s, 1.0f); 0127 QCOMPARE(l, 0.5f); 0128 0129 RGBToHSL(0, 0, 1, &h, &s, &l); 0130 QCOMPARE(h, 240.0f); 0131 QCOMPARE(s, 1.0f); 0132 QCOMPARE(l, 0.5f); 0133 0134 RGBToHSL(1, 0, 1, &h, &s, &l); 0135 QCOMPARE(h, 300.0f); 0136 QCOMPARE(s, 1.0f); 0137 QCOMPARE(l, 0.5f); 0138 0139 RGBToHSL(0, 0, 0, &h, &s, &l); 0140 QCOMPARE(h, -1.0f); 0141 QCOMPARE(s, 0.0f); 0142 QCOMPARE(l, 0.0f); 0143 0144 RGBToHSL(1, 1, 1, &h, &s, &l); 0145 QCOMPARE(h, -1.0f); 0146 QCOMPARE(s, 0.0f); 0147 QCOMPARE(l, 1.0f); 0148 0149 RGBToHSL(0.5, 0.25, 0.75, &h, &s, &l); 0150 QCOMPARE(h, 270.0f); 0151 QCOMPARE(s, 0.5f); 0152 QCOMPARE(l, 0.5f); 0153 0154 HSLToRGB(0, 1, 0.5, &r, &g, &b); 0155 QCOMPARE(r, 1.0f); 0156 QCOMPARE(g, 0.0f); 0157 QCOMPARE(b, 0.0f); 0158 0159 HSLToRGB(60, 1, 0.5, &r, &g, &b); 0160 QCOMPARE(r, 1.0f); 0161 QCOMPARE(g, 1.0f); 0162 QCOMPARE(b, 0.0f); 0163 0164 HSLToRGB(120, 1, 0.5, &r, &g, &b); 0165 QCOMPARE(r, 0.0f); 0166 QCOMPARE(g, 1.0f); 0167 QCOMPARE(b, 0.0f); 0168 0169 HSLToRGB(180, 1, 0.5, &r, &g, &b); 0170 QCOMPARE(r, 0.0f); 0171 QCOMPARE(g, 1.0f); 0172 QCOMPARE(b, 1.0f); 0173 0174 HSLToRGB(240, 1, 0.5, &r, &g, &b); 0175 QCOMPARE(r, 0.0f); 0176 QCOMPARE(g, 0.0f); 0177 QCOMPARE(b, 1.0f); 0178 0179 HSLToRGB(300, 1, 0.5, &r, &g, &b); 0180 QCOMPARE(r, 1.0f); 0181 QCOMPARE(g, 0.0f); 0182 QCOMPARE(b, 1.0f); 0183 0184 HSLToRGB(-1, 0, 0, &r, &g, &b); 0185 QCOMPARE(r, 0.0f); 0186 QCOMPARE(g, 0.0f); 0187 QCOMPARE(b, 0.0f); 0188 0189 HSLToRGB(-1, 0, 1, &r, &g, &b); 0190 QCOMPARE(r, 1.0f); 0191 QCOMPARE(g, 1.0f); 0192 QCOMPARE(b, 1.0f); 0193 0194 HSLToRGB(270, 0.5, 0.5, &r, &g, &b); 0195 QCOMPARE(r, 0.5f); 0196 QCOMPARE(g, 0.25f); 0197 QCOMPARE(b, 0.75f); 0198 } 0199 0200 QTEST_GUILESS_MAIN(TestColorConversion)