Esempio n. 1
0
        public void DesaturateTest()
        {
            // Arrange
            CIELab lab = new CIELab {
                L = 97.4, a = 62.3, b = 81.2
            };
            double aMax = 55, aMin = -55, bMax = 75, bMin = -75;

            // Act
            bool desaturated = Colorimetric.Desaturate(ref lab, aMax, aMin, bMax, bMin);

            // Assert
            Assert.IsTrue(desaturated);
        }
Esempio n. 2
0
        public void CIExyY_operatorCIEXYZTest()
        {
            // Arrange
            CIExyY xyY      = Colorimetric.D50_xyY;
            CIEXYZ expected = Colorimetric.xyY2XYZ(xyY);

            // Act
            CIEXYZ actual = xyY;

            // Assert
            Assert.AreEqual(expected.X, actual.X, double.Epsilon);
            Assert.AreEqual(expected.Y, actual.Y, double.Epsilon);
            Assert.AreEqual(expected.Z, actual.Z, double.Epsilon);
        }
Esempio n. 3
0
        public void LCh2LabTest()
        {
            // Arrange
            CIELCh lch = new CIELCh {
                L = 100.0, C = 0.0, h = 0.0
            };

            // Act
            CIELab lab = Colorimetric.LCh2Lab(lch);

            // Assert
            Assert.AreEqual(100.0, lab.L);
            Assert.AreEqual(0.0, lab.a);
            Assert.AreEqual(0.0, lab.b);
        }
Esempio n. 4
0
        public void Lab2LChTest()
        {
            // Arrange
            CIELab lab = new CIELab {
                L = 100.0, a = 0.0, b = 0.0
            };

            // Act
            CIELCh lch = Colorimetric.Lab2LCh(lab);

            // Assert
            Assert.AreEqual(100.0, lch.L);
            Assert.AreEqual(0.0, lch.C);
            Assert.AreEqual(0.0, lch.h);
        }
Esempio n. 5
0
        public void CIEXYZ_operatorCIExyYTest()
        {
            // Arrange
            CIEXYZ xyz = new CIEXYZ {
                X = 0.9642, Y = 1.0, Z = 0.8249
            };
            CIExyY expected = Colorimetric.XYZ2xyY(xyz);

            // Act
            CIExyY actual = xyz;

            // Assert
            Assert.AreEqual(expected.x, actual.x, double.Epsilon);
            Assert.AreEqual(expected.y, actual.y, double.Epsilon);
            Assert.AreEqual(expected.Y, actual.Y, double.Epsilon);
        }
Esempio n. 6
0
        public void XYZEncodingTest()
        {
            ushort[] inXyz = new ushort[3];
            for (ushort u = 0; u < ushort.MaxValue; u++)
            {
                inXyz[0] = inXyz[1] = inXyz[2] = u;

                CIEXYZ   fxyz   = Colorimetric.XYZEncoded2Float(inXyz);
                ushort[] outXyz = Colorimetric.Float2XYZEncoded(fxyz);

                for (int i = 0; i < 3; i++)
                {
                    Assert.AreEqual(u, outXyz[i]);
                }
            }
        }
Esempio n. 7
0
        public void LabV2EncodingTest()
        {
            ushort[] inWLab = new ushort[3];
            for (ushort u = 0; u < ushort.MaxValue; u++)
            {
                inWLab[0] = inWLab[1] = inWLab[2] = u;

                CIELab   lab     = Colorimetric.LabEncoded2FloatV2(inWLab);
                ushort[] outWLab = Colorimetric.Float2LabEncodedV2(lab);

                for (int i = 0; i < 3; i++)
                {
                    Assert.AreEqual(u, outWLab[i]);
                }
            }
        }
Esempio n. 8
0
        public void Lab2XYZTest()
        {
            // Arrange
            CIEXYZ whitePoint = new CIEXYZ {
                X = 0.9642, Y = 1.0, Z = 0.8249
            };                                                                  // D50 XYZ normalized to Y = 1.0
            CIELab lab = new CIELab {
                L = 100.0, a = 0.0, b = 0.0
            };

            // Act
            CIEXYZ xyz = Colorimetric.Lab2XYZ(whitePoint, lab);

            // Assert
            Assert.AreEqual(0.9642, xyz.X);
            Assert.AreEqual(1.0, xyz.Y);
            Assert.AreEqual(0.8249, xyz.Z);
        }
Esempio n. 9
0
        public void XYZ2LabTest()
        {
            // Arrange
            CIEXYZ whitePoint = new CIEXYZ {
                X = 0.9642, Y = 1.0, Z = 0.8249
            };                                                                  // D50 XYZ normalized to Y = 1.0
            CIEXYZ xyz = new CIEXYZ {
                X = 0.9642, Y = 1.0, Z = 0.8249
            };

            // Act
            CIELab lab = Colorimetric.XYZ2Lab(whitePoint, xyz);

            // Assert
            Assert.AreEqual(100.0, lab.L);
            Assert.AreEqual(0.0, lab.a);
            Assert.AreEqual(0.0, lab.b);
        }