public void HasValidHexCharacters_Test()
        {
            int index = 0;

            string invalidLongLength     = "fffffffff";
            string invalidShortLength    = "ff";
            string invalidLengthWithHash = "#ff";
            string invalidCharacters     = "#abcdefgh";

            string validCharacters  = "fffffff1";
            string validHex         = "FFFFFFFF";
            string validHexWithHash = "#FFFFFFFF";

            Assert.IsFalse(HexTo32bitColor.TryGetValidateStartingIndex(invalidLongLength, out index));
            Assert.IsTrue(index == -1);

            Assert.IsFalse(HexTo32bitColor.TryGetValidateStartingIndex(invalidShortLength, out index));
            Assert.IsTrue(index == -1);

            Assert.IsFalse(HexTo32bitColor.TryGetValidateStartingIndex(invalidLengthWithHash, out index));
            Assert.IsTrue(index == -1);

            Assert.IsFalse(HexTo32bitColor.TryGetValidateStartingIndex(invalidCharacters, out index));
            Assert.IsTrue(index == -1);

            Assert.IsTrue(HexTo32bitColor.TryGetValidateStartingIndex(validCharacters, out index));
            Assert.IsTrue(index == 0);

            Assert.IsTrue(HexTo32bitColor.TryGetValidateStartingIndex(validHex, out index));
            Assert.IsTrue(index == 0);

            Assert.IsTrue(HexTo32bitColor.TryGetValidateStartingIndex(validHexWithHash, out index));
            Assert.IsTrue(index == 1);
        }
        public void TryGetBlue_Test()
        {
            Assert.IsFalse(HexTo32bitColor.TryGetBlue(_invalidSignAtBeginning, out var blue));
            Assert.IsTrue(blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetBlue(_invalidSignAtBeginningWithHash, out blue));
            Assert.IsTrue(blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetBlue(_invalidCharacterAtEnd, out blue));
            Assert.IsTrue(blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetBlue(_invalidCharacterAtEndWithHash, out blue));
            Assert.IsTrue(blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetBlue(_invalidLengthShort, out blue));
            Assert.IsTrue(blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetBlue(_invalidLengthLong, out blue));
            Assert.IsTrue(blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetBlue(_invalidBlueWithHash, out blue));
            Assert.IsTrue(blue == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetBlue(_validColorWithHash, out blue));
            Assert.IsFalse(blue == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetBlue(_validColor, out blue));
            Assert.IsFalse(blue == Byte.MinValue);
        }
        public void TryGetGreen_Test()
        {
            Assert.IsFalse(HexTo32bitColor.TryGetGreen(_invalidSignAtBeginning, out var green));
            Assert.IsTrue(green == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetGreen(_invalidSignAtBeginningWithHash, out green));
            Assert.IsTrue(green == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetGreen(_invalidCharacterAtEnd, out green));
            Assert.IsTrue(green == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetGreen(_invalidCharacterAtEndWithHash, out green));
            Assert.IsTrue(green == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetGreen(_invalidLengthShort, out green));
            Assert.IsTrue(green == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetGreen(_invalidLengthLong, out green));
            Assert.IsTrue(green == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetGreen(_invalidGreenWithHash, out green));
            Assert.IsTrue(green == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetGreen(_validColorWithHash, out green));
            Assert.IsFalse(green == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetGreen(_validColor, out green));
            Assert.IsFalse(green == Byte.MinValue);
        }
        public void TryGetRed_Test()
        {
            Assert.IsFalse(HexTo32bitColor.TryGetRed(_invalidSignAtBeginning, out var red));
            Assert.IsTrue(red == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetRed(_invalidSignAtBeginningWithHash, out red));
            Assert.IsTrue(red == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetRed(_invalidCharacterAtEnd, out red));
            Assert.IsTrue(red == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetRed(_invalidCharacterAtEndWithHash, out red));
            Assert.IsTrue(red == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetRed(_invalidLengthShort, out red));
            Assert.IsTrue(red == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetRed(_invalidLengthLong, out red));
            Assert.IsTrue(red == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetRed(_invalidRedWithHash, out red));
            Assert.IsTrue(red == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetRed(_validColorWithHash, out red));
            Assert.IsFalse(red == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetRed(_validColor, out red));
            Assert.IsFalse(red == Byte.MinValue);
        }
        public void TryGetAlpha_Test()
        {
            Assert.IsFalse(HexTo32bitColor.TryGetAlpha(_invalidSignAtBeginning, out var alpha));
            Assert.IsTrue(alpha == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetAlpha(_invalidSignAtBeginningWithHash, out alpha));
            Assert.IsTrue(alpha == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetAlpha(_invalidCharacterAtEnd, out alpha));
            Assert.IsTrue(alpha == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetAlpha(_invalidCharacterAtEndWithHash, out alpha));
            Assert.IsTrue(alpha == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetAlpha(_invalidLengthShort, out alpha));
            Assert.IsTrue(alpha == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetAlpha(_invalidLengthLong, out alpha));
            Assert.IsTrue(alpha == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetAlpha(_invalidAlphaWithHash, out alpha));
            Assert.IsTrue(alpha == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetAlpha(_validColorWithHash, out alpha));
            Assert.IsFalse(alpha == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetAlpha(_validColor, out alpha));
            Assert.IsFalse(alpha == Byte.MinValue);
        }
        public void ColorToolkit_ResourceTest()
        {
            // Get argb.
            ResourceLoader resourceLoader = ResourceLoader.GetForViewIndependentUse("pqcommonui/ColorsDark");
            var            colorResource  = resourceLoader.GetString("ChannelTitle");
            var            convertedColor = colorResource.ToColor();

            Assert.IsTrue(convertedColor == Colors.Coral);
            Assert.IsTrue(convertedColor.ToString() == "#FFFF7F50");

            colorResource  = resourceLoader.GetString("GenericBackground");
            convertedColor = colorResource.ToColor();
            if (HexTo32bitColor.TryGetArgb("#FF171717", out var argb))
            {
                Assert.IsTrue(convertedColor == Color.FromArgb(argb.alpha, argb.red, argb.green, argb.blue));
            }
            else
            {
                Assert.Fail();
            }
        }
        public void TryGetArgb_Test()
        {
            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidSignAtBeginning, out var argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidSignAtBeginningWithHash, out argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidCharacterAtEnd, out argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidCharacterAtEndWithHash, out argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidLengthShort, out argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidLengthLong, out argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidAlphaWithHash, out argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidRedWithHash, out argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidGreenWithHash, out argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsFalse(HexTo32bitColor.TryGetArgb(_invalidBlueWithHash, out argb));
            Assert.IsTrue(argb.alpha == Byte.MinValue);
            Assert.IsTrue(argb.red == Byte.MinValue);
            Assert.IsTrue(argb.green == Byte.MinValue);
            Assert.IsTrue(argb.blue == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetArgb(_validColorWithHash, out argb));
            Assert.IsFalse(argb.alpha == Byte.MinValue);
            Assert.IsFalse(argb.red == Byte.MinValue);
            Assert.IsFalse(argb.green == Byte.MinValue);
            Assert.IsFalse(argb.blue == Byte.MinValue);

            Assert.IsTrue(HexTo32bitColor.TryGetArgb(_validColor, out argb));
            Assert.IsFalse(argb.alpha == Byte.MinValue);
            Assert.IsFalse(argb.red == Byte.MinValue);
            Assert.IsFalse(argb.green == Byte.MinValue);
            Assert.IsFalse(argb.blue == Byte.MinValue);
        }