public void TryParseShort_FromDoubleAndNullableDouble()
        {
            const double invalidValue1         = double.MaxValue;
            double?      nullableInvalidValue1 = double.MaxValue;
            const double invalidValue2         = double.MinValue;
            double?      nullableInvalidValue2 = double.MinValue;

            #region double - full method
            var success  = ConvertibleDoubleValue.TryParseShort(DefaultValue);
            var invalid1 = invalidValue1.TryParseShort(DefaultValue);
            var invalid2 = invalidValue2.TryParseShort(DefaultValue);

            Assert.AreEqual(success, ConvertibleShortValue, "Error converting double to short");
            Assert.AreEqual(invalid1, DefaultValue, "Error converting double to short");
            Assert.AreEqual(invalid2, DefaultValue, "Error converting double to short");
            #endregion

            #region double - without DefaultValue param
            success  = ConvertibleDoubleValue.TryParseShort();
            invalid1 = invalidValue1.TryParseShort();
            invalid2 = invalidValue2.TryParseShort();

            Assert.AreEqual(success, ConvertibleShortValue, "Error converting double to short");
            Assert.AreEqual(invalid1, BasePrimitivesExtensions.GetDefaultShortConversionValue(), "Error converting double to short");
            Assert.AreEqual(invalid2, BasePrimitivesExtensions.GetDefaultShortConversionValue(), "Error converting double to short");
            #endregion

            #region double? - full method
            success  = ConvertibleNullableDoubleValue.TryParseShort(DefaultValue);
            invalid1 = nullableInvalidValue1.TryParseShort(DefaultValue);
            invalid2 = nullableInvalidValue2.TryParseShort(DefaultValue);

            Assert.AreEqual(success, ConvertibleShortValue, "Error converting double? to short");
            Assert.AreEqual(invalid1, DefaultValue, "Error converting double? to short");
            Assert.AreEqual(invalid2, DefaultValue, "Error converting double? to short");
            #endregion

            #region double? - without DefaultValue param
            success  = ConvertibleNullableDoubleValue.TryParseShort();
            invalid1 = nullableInvalidValue1.TryParseShort();
            invalid2 = nullableInvalidValue2.TryParseShort();

            Assert.AreEqual(success, ConvertibleShortValue, "Error converting double? to short");
            Assert.AreEqual(invalid1, BasePrimitivesExtensions.GetDefaultShortConversionValue(), "Error converting double? to short");
            Assert.AreEqual(invalid2, BasePrimitivesExtensions.GetDefaultShortConversionValue(), "Error converting double? to short");
            #endregion
        }
        public void TryParseDouble_NullableDouble()
        {
            #region full method
            var success = ConvertibleNullableDoubleValue.TryParseDouble(DefaultValue);
            var invalid = ((double?)null).TryParseDouble(DefaultValue);

            Assert.AreEqual(success, ConvertibleDoubleValue, "Error converting nullable double to double");
            Assert.AreEqual(invalid, DefaultValue, "Error converting nullable double to double");
            #endregion

            #region simple method
            success = ConvertibleNullableDoubleValue.TryParseDouble();
            invalid = ((double?)null).TryParseDouble();

            Assert.AreEqual(success, ConvertibleDoubleValue, "Error converting nullable double to double");
            Assert.AreEqual(invalid, BasePrimitivesExtensions.GetDefaultIntConversionValue(), "Error converting nullable double to double");
            #endregion
        }