/// <summary>
        ///
        /// </summary>
        /// <param name="other"></param>
        /// <param name="exact"></param>
        /// <returns></returns>
        public bool Equals(IHsbColorModel <byte> other, bool exact)
        {
            if (other == null)
            {
                return(false);
            }
            float b;

            if (exact)
            {
                if (other.Alpha.ToPercentage() != _alpha)
                {
                    return(false);
                }
                ColorExtensions.HSBtoRGB(other.Hue.ToDegrees(), other.Saturation.ToPercentage(), other.Brightness.ToPercentage(), out float r, out float g, out b);
                return(_red == r && _green == g && _blue == b);
            }

            if (other.Alpha != _alpha.FromPercentage())
            {
                return(false);
            }

            if (!other.IsNormalized)
            {
                other = other.AsNormalized();
            }

            ColorExtensions.RGBtoHSB(_red, _green, _blue, out float h, out float s, out b);
            return(other.Hue == h.FromDegrees() && other.Saturation == s.FromPercentage() && other.Brightness == b.FromPercentage());
        }
 /// <summary>
 /// Indicates whether the current value is equal to another color model object.
 /// </summary>
 /// <param name="other">A color model to compare with this value.</param>
 /// <param name="exact"><c>true</c> to compare exact values; otherwise, <c>false</c> to compare normalized values.</param>
 /// <returns><c>true</c> if the current value is equal to another color model object; otherwise, <c>false</c>.</returns>
 public bool Equals(IHsbColorModel <float> other, bool exact)
 {
     if (other == null)
     {
         return(false);
     }
     if (exact)
     {
         return(_alpha.ToPercentage() == other.Alpha && _hue.ToDegrees() == other.Hue && _saturation.ToPercentage() == other.Saturation && _brightness.ToPercentage() == other.Brightness);
     }
     if (!other.IsNormalized)
     {
         other = other.AsNormalized();
     }
     return(_alpha == other.Alpha.FromPercentage() && _hue == other.Hue.FromDegrees() && _saturation == other.Saturation.FromPercentage() && _brightness == other.Brightness.FromPercentage());
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="other"></param>
        /// <param name="exact"></param>
        /// <returns></returns>
        public bool Equals(IHsbColorModel <float> other, bool exact)
        {
            if (other == null || _alpha != other.Alpha)
            {
                return(false);
            }

            float b;

            if (exact)
            {
                ColorExtensions.RGBtoHSB(_red, _green, _blue, out float h, out float s, out b);
                return(other.Hue == h && other.Saturation == s && other.Brightness == b);
            }

            if (!other.IsNormalized)
            {
                other = other.AsNormalized();
            }

            ColorExtensions.HSBtoRGB(other.Hue, other.Saturation, other.Brightness, out float r, out float g, out b);
            return(_red == r && _green == g && _blue == b);
        }