예제 #1
0
        public void TryParseFloat_FromString()
        {
            var invalidValue1 = double.MaxValue.ToString(CultureInfo.InvariantCulture);
            var invalidValue2 = double.MinValue.ToString(CultureInfo.InvariantCulture);

            #region full method
            var success = ConvertibleStringValue.TryParseFloat(DefaultValue,
                                                               BasePrimitivesExtensions.GetDefaultFloatAllowDefaultConversion(),
                                                               BasePrimitivesExtensions.GetDefaultFloatNumberStyle(),
                                                               BasePrimitivesExtensions.GetCurrentCulture());

            var invalid1 = invalidValue1.TryParseFloat(DefaultValue,
                                                       BasePrimitivesExtensions.GetDefaultFloatAllowDefaultConversion(),
                                                       BasePrimitivesExtensions.GetDefaultFloatNumberStyle(),
                                                       BasePrimitivesExtensions.GetCurrentCulture());

            var invalid2 = invalidValue2.TryParseFloat(DefaultValue,
                                                       BasePrimitivesExtensions.GetDefaultFloatAllowDefaultConversion(),
                                                       BasePrimitivesExtensions.GetDefaultFloatNumberStyle(),
                                                       BasePrimitivesExtensions.GetCurrentCulture());

            Assert.AreEqual(success, ConvertibleFloatValue, "Error converting string to float");
            Assert.AreEqual(invalid1, DefaultValue, "Error converting string to float");
            Assert.AreEqual(invalid2, DefaultValue, "Error converting string to float");
            #endregion

            #region without allowZero param
            success = ConvertibleStringValue.TryParseFloat(DefaultValue,
                                                           BasePrimitivesExtensions.GetDefaultFloatNumberStyle(),
                                                           BasePrimitivesExtensions.GetCurrentCulture());

            invalid1 = invalidValue1.TryParseFloat(DefaultValue,
                                                   BasePrimitivesExtensions.GetDefaultFloatNumberStyle(),
                                                   BasePrimitivesExtensions.GetCurrentCulture());

            invalid2 = invalidValue2.TryParseFloat(DefaultValue,
                                                   BasePrimitivesExtensions.GetDefaultFloatNumberStyle(),
                                                   BasePrimitivesExtensions.GetCurrentCulture());

            Assert.AreEqual(success, ConvertibleFloatValue, "Error converting string to float");
            Assert.AreEqual(invalid1, DefaultValue, "Error converting string to float");
            Assert.AreEqual(invalid2, DefaultValue, "Error converting string to float");
            #endregion

            #region without allowZero and DefaultValue params
            success = ConvertibleStringValue.TryParseFloat(BasePrimitivesExtensions.GetDefaultFloatNumberStyle(),
                                                           BasePrimitivesExtensions.GetCurrentCulture());

            invalid1 = invalidValue1.TryParseFloat(BasePrimitivesExtensions.GetDefaultFloatNumberStyle(),
                                                   BasePrimitivesExtensions.GetCurrentCulture());

            invalid2 = invalidValue2.TryParseFloat(BasePrimitivesExtensions.GetDefaultFloatNumberStyle(),
                                                   BasePrimitivesExtensions.GetCurrentCulture());

            Assert.AreEqual(success, ConvertibleFloatValue, "Error converting string to float");
            Assert.AreEqual(invalid1, BasePrimitivesExtensions.GetDefaultIntConversionValue(), "Error converting string to float");
            Assert.AreEqual(invalid2, BasePrimitivesExtensions.GetDefaultIntConversionValue(), "Error converting string to float");
            #endregion

            #region without number style and culture params
            success = ConvertibleStringValue.TryParseFloat(DefaultValue,
                                                           BasePrimitivesExtensions.GetDefaultFloatAllowDefaultConversion());

            invalid1 = invalidValue1.TryParseFloat(DefaultValue,
                                                   BasePrimitivesExtensions.GetDefaultFloatAllowDefaultConversion());

            invalid2 = invalidValue2.TryParseFloat(DefaultValue,
                                                   BasePrimitivesExtensions.GetDefaultFloatAllowDefaultConversion());

            Assert.AreEqual(success, ConvertibleFloatValue, "Error converting string to float");
            Assert.AreEqual(invalid1, DefaultValue, "Error converting string to float");
            Assert.AreEqual(invalid2, DefaultValue, "Error converting string to float");
            #endregion

            #region without number style, culture and allowZero params
            success  = ConvertibleStringValue.TryParseFloat(DefaultValue);
            invalid1 = invalidValue1.TryParseFloat(DefaultValue);
            invalid2 = invalidValue2.TryParseFloat(DefaultValue);

            Assert.AreEqual(success, ConvertibleFloatValue, "Error converting string to float");
            Assert.AreEqual(invalid1, DefaultValue, "Error converting string to float");
            Assert.AreEqual(invalid2, DefaultValue, "Error converting string to float");
            #endregion

            #region simple conversion
            success  = ConvertibleStringValue.TryParseFloat();
            invalid1 = invalidValue1.TryParseFloat();
            invalid2 = invalidValue2.TryParseFloat();

            Assert.AreEqual(success, ConvertibleFloatValue, "Error converting string to float");
            Assert.AreEqual(invalid1, BasePrimitivesExtensions.GetDefaultIntConversionValue(), "Error converting string to float");
            Assert.AreEqual(invalid2, BasePrimitivesExtensions.GetDefaultIntConversionValue(), "Error converting string to float");
            #endregion
        }