ColorDeltaETests.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using Masuit.Tools.Media;
  2. using Xunit;
  3. namespace Masuit.Tools.Abstractions.Test.Media;
  4. public class ColorDeltaETests
  5. {
  6. [Fact]
  7. public void CIE1976_LabColor_SameColor_ReturnsZero()
  8. {
  9. var lab1 = new LabColor(50, 20, 30);
  10. var lab2 = new LabColor(50, 20, 30);
  11. double deltaE = ColorDeltaE.CIE1976(lab1, lab2);
  12. Assert.Equal(0, deltaE, 6);
  13. }
  14. [Fact]
  15. public void CIE1976_LabColor_DifferentColor_ReturnsPositive()
  16. {
  17. var lab1 = new LabColor(50, 20, 30);
  18. var lab2 = new LabColor(60, 25, 35);
  19. double deltaE = ColorDeltaE.CIE1976(lab1, lab2);
  20. Assert.True(deltaE > 0);
  21. }
  22. [Fact]
  23. public void CIE1994_LabColor_SameColor_ReturnsZero()
  24. {
  25. var lab1 = new LabColor(50, 20, 30);
  26. var lab2 = new LabColor(50, 20, 30);
  27. double deltaE = ColorDeltaE.CIE1994(lab1, lab2);
  28. Assert.Equal(0, deltaE, 6);
  29. }
  30. [Fact]
  31. public void CIE1994_LabColor_DifferentColor_ReturnsPositive()
  32. {
  33. var lab1 = new LabColor(50, 20, 30);
  34. var lab2 = new LabColor(60, 25, 35);
  35. double deltaE = ColorDeltaE.CIE1994(lab1, lab2);
  36. Assert.True(deltaE > 0);
  37. }
  38. [Fact]
  39. public void CIE1994_LabColor_TextileParameter()
  40. {
  41. var lab1 = new LabColor(50, 20, 30);
  42. var lab2 = new LabColor(60, 25, 35);
  43. double deltaE1 = ColorDeltaE.CIE1994(lab1, lab2, textile: false);
  44. double deltaE2 = ColorDeltaE.CIE1994(lab1, lab2, textile: true);
  45. Assert.NotEqual(deltaE1, deltaE2);
  46. }
  47. [Fact]
  48. public void CIE2000_LabColor_SameColor_ReturnsZero()
  49. {
  50. var lab1 = new LabColor(50, 20, 30);
  51. var lab2 = new LabColor(50, 20, 30);
  52. double deltaE = ColorDeltaE.CIE2000(lab1, lab2);
  53. Assert.Equal(0, deltaE, 6);
  54. }
  55. [Fact]
  56. public void CIE2000_LabColor_DifferentColor_ReturnsPositive()
  57. {
  58. var lab1 = new LabColor(50, 20, 30);
  59. var lab2 = new LabColor(60, 25, 35);
  60. double deltaE = ColorDeltaE.CIE2000(lab1, lab2);
  61. Assert.True(deltaE > 0);
  62. }
  63. [Fact]
  64. public void CMC_LabColor_SameColor_ReturnsZero()
  65. {
  66. var lab1 = new LabColor(50, 20, 30);
  67. var lab2 = new LabColor(50, 20, 30);
  68. double deltaE = ColorDeltaE.CMC(lab1, lab2);
  69. Assert.Equal(0, deltaE, 6);
  70. }
  71. [Fact]
  72. public void CMC_LabColor_DifferentColor_ReturnsPositive()
  73. {
  74. var lab1 = new LabColor(50, 20, 30);
  75. var lab2 = new LabColor(60, 25, 35);
  76. double deltaE = ColorDeltaE.CMC(lab1, lab2);
  77. Assert.True(deltaE > 0);
  78. }
  79. // 可选:为其它颜色空间(如CMYColor、CMYKColor、HSLColor等)补充类似测试
  80. // 这里只演示LabColor,因其它重载最终都转为LabColor处理
  81. }