ColorEqualityComparer.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System.Collections.Generic;
  2. namespace UnityEngine.TestTools.Utils
  3. {
  4. public class ColorEqualityComparer : IEqualityComparer<Color>
  5. {
  6. private const float k_DefaultError = 0.01f;
  7. private readonly float AllowedError;
  8. private static readonly ColorEqualityComparer m_Instance = new ColorEqualityComparer();
  9. public static ColorEqualityComparer Instance { get { return m_Instance; } }
  10. private ColorEqualityComparer() : this(k_DefaultError)
  11. {
  12. }
  13. public ColorEqualityComparer(float error)
  14. {
  15. this.AllowedError = error;
  16. }
  17. public bool Equals(Color expected, Color actual)
  18. {
  19. return Utils.AreFloatsEqualAbsoluteError(expected.r, actual.r, AllowedError) &&
  20. Utils.AreFloatsEqualAbsoluteError(expected.g, actual.g, AllowedError) &&
  21. Utils.AreFloatsEqualAbsoluteError(expected.b, actual.b, AllowedError) &&
  22. Utils.AreFloatsEqualAbsoluteError(expected.a, actual.a, AllowedError);
  23. }
  24. public int GetHashCode(Color color)
  25. {
  26. return 0;
  27. }
  28. }
  29. }