|
| 1 | +// Copyright (c) Six Labors. |
| 2 | +// Licensed under the Six Labors Split License. |
| 3 | + |
| 4 | +using System.Numerics; |
| 5 | +using SixLabors.ImageSharp.ColorProfiles; |
| 6 | + |
| 7 | +namespace SixLabors.ImageSharp.Tests.ColorProfiles; |
| 8 | + |
| 9 | +public class StringRepresentationTests |
| 10 | +{ |
| 11 | + private static readonly Vector3 One = new(1); |
| 12 | + private static readonly Vector3 Zero = new(0); |
| 13 | + private static readonly Vector3 Random = new(42.4F, 94.5F, 83.4F); |
| 14 | + |
| 15 | + public static readonly TheoryData<object, string> TestData = new() |
| 16 | + { |
| 17 | + { new CieLab(Zero), "CieLab(0, 0, 0)" }, |
| 18 | + { new CieLch(Zero), "CieLch(0, 0, 0)" }, |
| 19 | + { new CieLchuv(Zero), "CieLchuv(0, 0, 0)" }, |
| 20 | + { new CieLuv(Zero), "CieLuv(0, 0, 0)" }, |
| 21 | + { new CieXyz(Zero), "CieXyz(0, 0, 0)" }, |
| 22 | + { new CieXyy(Zero), "CieXyy(0, 0, 0)" }, |
| 23 | + { new HunterLab(Zero), "HunterLab(0, 0, 0)" }, |
| 24 | + { new Lms(Zero), "Lms(0, 0, 0)" }, |
| 25 | + { new Rgb(Zero), "Rgb(0, 0, 0)" }, |
| 26 | + { new Hsl(Zero), "Hsl(0, 0, 0)" }, |
| 27 | + { new Hsv(Zero), "Hsv(0, 0, 0)" }, |
| 28 | + { new YCbCr(Zero), "YCbCr(0, 0, 0)" }, |
| 29 | + { new CieLab(One), "CieLab(1, 1, 1)" }, |
| 30 | + { new CieLch(One), "CieLch(1, 1, 1)" }, |
| 31 | + { new CieLchuv(One), "CieLchuv(1, 1, 1)" }, |
| 32 | + { new CieLuv(One), "CieLuv(1, 1, 1)" }, |
| 33 | + { new CieXyz(One), "CieXyz(1, 1, 1)" }, |
| 34 | + { new CieXyy(One), "CieXyy(1, 1, 1)" }, |
| 35 | + { new HunterLab(One), "HunterLab(1, 1, 1)" }, |
| 36 | + { new Lms(One), "Lms(1, 1, 1)" }, |
| 37 | + { new Rgb(One), "Rgb(1, 1, 1)" }, |
| 38 | + { new Hsl(One), "Hsl(1, 1, 1)" }, |
| 39 | + { new Hsv(One), "Hsv(1, 1, 1)" }, |
| 40 | + { new YCbCr(One), "YCbCr(1, 1, 1)" }, |
| 41 | + { new CieXyChromaticityCoordinates(1, 1), "CieXyChromaticityCoordinates(1, 1)" }, |
| 42 | + { new CieLab(Random), "CieLab(42.4, 94.5, 83.4)" }, |
| 43 | + { new CieLch(Random), "CieLch(42.4, 94.5, 83.4)" }, |
| 44 | + { new CieLchuv(Random), "CieLchuv(42.4, 94.5, 83.4)" }, |
| 45 | + { new CieLuv(Random), "CieLuv(42.4, 94.5, 83.4)" }, |
| 46 | + { new CieXyz(Random), "CieXyz(42.4, 94.5, 83.4)" }, |
| 47 | + { new CieXyy(Random), "CieXyy(42.4, 94.5, 83.4)" }, |
| 48 | + { new HunterLab(Random), "HunterLab(42.4, 94.5, 83.4)" }, |
| 49 | + { new Lms(Random), "Lms(42.4, 94.5, 83.4)" }, |
| 50 | + { new Rgb(Random), "Rgb(42.4, 94.5, 83.4)" }, |
| 51 | + { Rgb.Clamp(new Rgb(Random)), "Rgb(1, 1, 1)" }, |
| 52 | + { new Hsl(Random), "Hsl(42.4, 1, 1)" }, // clamping to 1 is expected |
| 53 | + { new Hsv(Random), "Hsv(42.4, 1, 1)" }, // clamping to 1 is expected |
| 54 | + { new YCbCr(Random), "YCbCr(42.4, 94.5, 83.4)" }, |
| 55 | + }; |
| 56 | + |
| 57 | + [Theory] |
| 58 | + [MemberData(nameof(TestData))] |
| 59 | + public void StringRepresentationsAreCorrect(object color, string text) => Assert.Equal(text, color.ToString()); |
| 60 | +} |
0 commit comments