public void InternationalizationUtilityWithSupportedLanguageCodeAndNonSupportedCultureCode()
        {
            var currentCulture = CultureInfo.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("es-mx");                 // Spanish-Mexico
                var valueErrorString = "#¡VALOR!";
                var isValueError     = InternationalizationUtility.TryParseLocalErrorValue(valueErrorString, CultureInfo.CurrentCulture, out ExcelErrorValue error);
                Assert.AreEqual(isValueError, true);
                Assert.AreEqual(error.Type, eErrorType.Value);
                var falseString    = "FALSO";
                var isFalseBoolean = InternationalizationUtility.TryParseLocalBoolean(falseString, CultureInfo.CurrentCulture, out bool falseBool);
                Assert.AreEqual(isFalseBoolean, true);
                Assert.AreEqual(falseBool, false);
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de-at");                 // German-Austria
                valueErrorString = "#WERT!";
                isValueError     = InternationalizationUtility.TryParseLocalErrorValue(valueErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isValueError, true);
                Assert.AreEqual(error.Type, eErrorType.Value);
                falseString    = "FALSCH";
                isFalseBoolean = InternationalizationUtility.TryParseLocalBoolean(falseString, CultureInfo.CurrentCulture, out falseBool);
                Assert.AreEqual(isFalseBoolean, true);
                Assert.AreEqual(falseBool, false);
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }
        public void InternationaliztionUtilityParsesGermanErrorValues()
        {
            var currentCulture = CultureInfo.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de-de");
                var             valueErrorString = "#WERT!";
                var             numErrorString   = "#ZAHL!";
                var             div0ErrorString  = "#DIV/0!";
                var             nameErrorString  = "#NAME?";
                var             naErrorString    = "#NV";
                var             refErrorString   = "#BEZUG!";
                var             nullErrorString  = "#NULL!";
                bool            isErrorValue     = false;
                ExcelErrorValue error            = null;
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(valueErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Value, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(numErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Num, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(div0ErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Div0, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(nameErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Name, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(naErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.NA, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(refErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Ref, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(nullErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Null, error.Type);
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }
        public void InternationaliztionUtilityParsesGreekErrorValues()
        {
            var currentCulture = CultureInfo.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("el-gr");
                var             valueErrorString = "#ΤΙΜΗ!";
                var             numErrorString   = "#ΑΡΙΘ!";
                var             div0ErrorString  = "#ΔΙΑΙΡ./0!";
                var             nameErrorString  = "#ΟΝΟΜΑ?";
                var             naErrorString    = "#Δ/Υ";
                var             refErrorString   = "#ΑΝΑΦ!";
                var             nullErrorString  = "#ΚΕΝΟ!";
                bool            isErrorValue     = false;
                ExcelErrorValue error            = null;
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(valueErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Value, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(numErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Num, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(div0ErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Div0, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(nameErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Name, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(naErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.NA, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(refErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Ref, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(nullErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Null, error.Type);
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }
        public void InternationaliztionUtilityParsesRussianErrorValues()
        {
            var currentCulture = CultureInfo.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-ru");
                var             valueErrorString = "#ЗНАЧ!";
                var             numErrorString   = "#ЧИСЛО!";
                var             div0ErrorString  = "#ДЕЛ/0!";
                var             nameErrorString  = "#ИМЯ?";
                var             naErrorString    = "#Н/Д";
                var             refErrorString   = "#ССЫЛКА!";
                var             nullErrorString  = "#ПУСТО!";
                bool            isErrorValue     = false;
                ExcelErrorValue error            = null;
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(valueErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Value, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(numErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Num, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(div0ErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Div0, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(nameErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Name, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(naErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.NA, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(refErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Ref, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(nullErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Null, error.Type);
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }
        public void InternationaliztionUtilityParsesPolishErrorValues()
        {
            var currentCulture = CultureInfo.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("pl-pl");
                var             valueErrorString = "#ARG!";
                var             numErrorString   = "#LICZBA!";
                var             div0ErrorString  = "#DZIEL/0!";
                var             nameErrorString  = "#NAZWA?";
                var             naErrorString    = "#N/D!";
                var             refErrorString   = "#ADR!";
                var             nullErrorString  = "#ZERO!";
                bool            isErrorValue     = false;
                ExcelErrorValue error            = null;
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(valueErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Value, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(numErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Num, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(div0ErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Div0, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(nameErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Name, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(naErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.NA, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(refErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Ref, error.Type);
                isErrorValue = InternationalizationUtility.TryParseLocalErrorValue(nullErrorString, CultureInfo.CurrentCulture, out error);
                Assert.AreEqual(isErrorValue, true);
                Assert.AreEqual(eErrorType.Null, error.Type);
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }
        public void InternationalizationUtilityParsesGreekBooleanStrings()
        {
            var currentCulture = CultureInfo.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("el-gr");
                var trueString  = "TRUE";
                var falseString = "FALSE";
                var isBoolean   = InternationalizationUtility.TryParseLocalBoolean(trueString, CultureInfo.CurrentCulture, out bool booleanValue);
                Assert.AreEqual(isBoolean, true);
                Assert.AreEqual(booleanValue, true);
                isBoolean = InternationalizationUtility.TryParseLocalBoolean(falseString, CultureInfo.CurrentCulture, out booleanValue);
                Assert.AreEqual(isBoolean, true);
                Assert.AreEqual(booleanValue, false);
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }
        public void InternationalizationUtilityParsesRussianBooleanStrings()
        {
            var currentCulture = CultureInfo.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-ru");
                var trueString  = "ИСТИНА";
                var falseString = "ЛОЖЬ";
                var isBoolean   = InternationalizationUtility.TryParseLocalBoolean(trueString, CultureInfo.CurrentCulture, out bool booleanValue);
                Assert.AreEqual(isBoolean, true);
                Assert.AreEqual(booleanValue, true);
                isBoolean = InternationalizationUtility.TryParseLocalBoolean(falseString, CultureInfo.CurrentCulture, out booleanValue);
                Assert.AreEqual(isBoolean, true);
                Assert.AreEqual(booleanValue, false);
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }