yield return new object[] { " &o5", (float)5 };
yield return new object[] { "&o0", (float)0 };
yield return new object[] { 1.1.ToString(), (float)1.1 };
- yield return new object[] { "18446744073709551616", float.Parse("1.844674E+19", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { "18446744073709551616", 18446744073709551616.0f };
yield return new object[] { double.PositiveInfinity.ToString(), float.PositiveInfinity };
yield return new object[] { double.NegativeInfinity.ToString(), float.NegativeInfinity };
yield return new object[] { double.NaN.ToString(), float.NaN };
// uint.
yield return new object[] { uint.MinValue, (float)0 };
yield return new object[] { (uint)1, (float)1 };
- yield return new object[] { uint.MaxValue, float.Parse("4.294967E+09", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { uint.MaxValue, (float)uint.MaxValue };
yield return new object[] { (UIntEnum)uint.MinValue, (float)0 };
yield return new object[] { (UIntEnum)1, (float)1 };
- yield return new object[] { (UIntEnum)uint.MaxValue, float.Parse("4.294967E+09", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { (UIntEnum)uint.MaxValue, (float)uint.MaxValue };
// int.
- yield return new object[] { int.MinValue, float.Parse("-2.147484E+09", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { int.MinValue, (float)int.MinValue };
yield return new object[] { -1, (float)(-1) };
yield return new object[] { 0, (float)0 };
yield return new object[] { 1, (float)1 };
- yield return new object[] { int.MaxValue, float.Parse("2.147484E+09", NumberStyles.Any, CultureInfo.InvariantCulture) };
- yield return new object[] { (IntEnum)int.MinValue, float.Parse("-2.147484E+09", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { int.MaxValue, (float)int.MaxValue };
+ yield return new object[] { (IntEnum)int.MinValue, (float)int.MinValue };
yield return new object[] { (IntEnum)(-1), (float)(-1) };
yield return new object[] { (IntEnum)0, (float)0 };
yield return new object[] { (IntEnum)1, (float)1 };
- yield return new object[] { (IntEnum)int.MaxValue, float.Parse("2.147484E+09", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { (IntEnum)int.MaxValue, (float)int.MaxValue };
// ulong.
yield return new object[] { ulong.MinValue, (float)0 };
yield return new object[] { (ulong)1, (float)1 };
- yield return new object[] { ulong.MaxValue, float.Parse("1.844674E+19", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { ulong.MaxValue, (float)ulong.MaxValue };
yield return new object[] { (ULongEnum)ulong.MinValue, (float)0 };
yield return new object[] { (ULongEnum)1, (float)1 };
- yield return new object[] { (ULongEnum)ulong.MaxValue, float.Parse("1.844674E+19", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { (ULongEnum)ulong.MaxValue, (float)ulong.MaxValue };
// long.
- yield return new object[] { long.MinValue, float.Parse("-9.223372E+18", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { long.MinValue, (float)long.MinValue };
yield return new object[] { (long)(-1), (float)(-1) };
yield return new object[] { (long)0, (float)0 };
yield return new object[] { (long)1, (float)1 };
- yield return new object[] { long.MaxValue, float.Parse("9.223372E+18", NumberStyles.Any, CultureInfo.InvariantCulture) };
- yield return new object[] { (LongEnum)long.MinValue, float.Parse("-9.223372E+18", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { long.MaxValue, (float)long.MaxValue };
+ yield return new object[] { (LongEnum)long.MinValue, (float)long.MinValue };
yield return new object[] { (LongEnum)(-1), (float)(-1) };
yield return new object[] { (LongEnum)0, (float)0 };
yield return new object[] { (LongEnum)1, (float)1 };
- yield return new object[] { (LongEnum)long.MaxValue, float.Parse("9.223372E+18", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { (LongEnum)long.MaxValue, (float)long.MaxValue };
// float.
yield return new object[] { float.MinValue, float.MinValue };
yield return new object[] { double.NaN, float.NaN };
// decimal.
- yield return new object[] { decimal.MinValue, float.Parse("-7.922816E+28", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { decimal.MinValue, (float)decimal.MinValue };
yield return new object[] { (decimal)(-1), (float)(-1) };
yield return new object[] { (decimal)0, (float)0 };
yield return new object[] { (decimal)1, (float)1 };
- yield return new object[] { decimal.MaxValue, float.Parse("7.922816E+28", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { decimal.MaxValue, (float)decimal.MaxValue };
// bool.
yield return new object[] { true, (float)(-1) };
yield return new object[] { " &o5", (double)5 };
yield return new object[] { "&o0", (double)0 };
yield return new object[] { 1.1.ToString(), (double)1.1 };
- yield return new object[] { "18446744073709551616", double.Parse("1.84467440737096E+19", NumberStyles.Any, CultureInfo.InvariantCulture) };
- yield return new object[] { "1844674407370955161618446744073709551616", double.Parse("1.84467440737096E+39", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { "18446744073709551616", 18446744073709551616.0 };
+ yield return new object[] { "1844674407370955161618446744073709551616", 1844674407370955161618446744073709551616.0 };
yield return new object[] { double.PositiveInfinity.ToString(), double.PositiveInfinity };
yield return new object[] { double.NegativeInfinity.ToString(), double.NegativeInfinity };
yield return new object[] { double.NaN.ToString(), double.NaN };
// ulong.
yield return new object[] { ulong.MinValue, (double)0 };
yield return new object[] { (ulong)1, (double)1 };
- yield return new object[] { ulong.MaxValue, double.Parse("1.84467440737096E+19", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { ulong.MaxValue, (double)ulong.MaxValue };
yield return new object[] { (ULongEnum)ulong.MinValue, (double)0 };
yield return new object[] { (ULongEnum)1, (double)1 };
- yield return new object[] { (ULongEnum)ulong.MaxValue, double.Parse("1.84467440737096E+19", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { (ULongEnum)ulong.MaxValue, (double)ulong.MaxValue };
// long.
- yield return new object[] { long.MinValue, double.Parse("-9.22337203685478E+18", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { long.MinValue, (double)long.MinValue };
yield return new object[] { (long)(-1), (double)(-1) };
yield return new object[] { (long)0, (double)0 };
yield return new object[] { (long)1, (double)1 };
- yield return new object[] { long.MaxValue, double.Parse("9.22337203685478E+18", NumberStyles.Any, CultureInfo.InvariantCulture) };
- yield return new object[] { (LongEnum)long.MinValue, double.Parse("-9.22337203685478E+18", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { long.MaxValue, (double)long.MaxValue };
+ yield return new object[] { (LongEnum)long.MinValue, (double)long.MinValue };
yield return new object[] { (LongEnum)(-1), (double)(-1) };
yield return new object[] { (LongEnum)0, (double)0 };
yield return new object[] { (LongEnum)1, (double)1 };
- yield return new object[] { (LongEnum)long.MaxValue, double.Parse("9.22337203685478E+18", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { (LongEnum)long.MaxValue, (double)long.MaxValue };
// float.
- yield return new object[] { float.MinValue, double.Parse("-3.40282346638529E+38", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { float.MinValue, (double)float.MinValue };
yield return new object[] { (float)(-1), (double)(-1) };
yield return new object[] { (float)0, (double)0 };
yield return new object[] { (float)1, (double)1 };
- yield return new object[] { float.MaxValue, double.Parse("3.40282346638529E+38", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { float.MaxValue, (double)float.MaxValue };
yield return new object[] { float.PositiveInfinity, double.PositiveInfinity };
yield return new object[] { float.NegativeInfinity, double.NegativeInfinity };
yield return new object[] { float.NaN, double.NaN };
yield return new object[] { double.NaN, double.NaN };
// decimal.
- yield return new object[] { decimal.MinValue, double.Parse("-7.92281625142643E+28", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { decimal.MinValue, (double)decimal.MinValue };
yield return new object[] { (decimal)(-1), (double)(-1) };
yield return new object[] { (decimal)0, (double)0 };
yield return new object[] { (decimal)1, (double)1 };
- yield return new object[] { decimal.MaxValue, double.Parse("7.92281625142643E+28", NumberStyles.Any, CultureInfo.InvariantCulture) };
+ yield return new object[] { decimal.MaxValue, (double)decimal.MaxValue };
// bool.
yield return new object[] { true, (double)(-1) };
yield return new object[] { " &o5", (decimal)5 };
yield return new object[] { "&o0", (decimal)0 };
yield return new object[] { 1.1.ToString(), (decimal)1.1 };
- yield return new object[] { "18446744073709551616", decimal.Parse("18446744073709551616", CultureInfo.InvariantCulture) };
+ yield return new object[] { "18446744073709551616", 18446744073709551616.0m };
}
[Theory]
// ulong.
yield return new object[] { ulong.MinValue, (decimal)0 };
yield return new object[] { (ulong)1, (decimal)1 };
- yield return new object[] { ulong.MaxValue, decimal.Parse("18446744073709551615", CultureInfo.InvariantCulture) };
+ yield return new object[] { ulong.MaxValue, (decimal)ulong.MaxValue };
yield return new object[] { (ULongEnum)ulong.MinValue, (decimal)0 };
yield return new object[] { (ULongEnum)1, (decimal)1 };
- yield return new object[] { (ULongEnum)ulong.MaxValue, decimal.Parse("18446744073709551615", CultureInfo.InvariantCulture) };
+ yield return new object[] { (ULongEnum)ulong.MaxValue, (decimal)ulong.MaxValue };
// long.
yield return new object[] { long.MinValue, (decimal)(-9223372036854775808) };
[Theory]
[MemberData(nameof(SizeFData))]
- public void ConvertTo(float width, float height)
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public void ConvertTo_NetFramework(float width, float height)
{
TestConvertToString(new SizeF(width, height), FormattableString.Invariant($"{width:G9}, {height:G9}"));
}
+
+ [Theory]
+ [MemberData(nameof(SizeFData))]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public void ConvertTo_NotNetFramework(float width, float height)
+ {
+ TestConvertToString(new SizeF(width, height), FormattableString.Invariant($"{width}, {height}"));
+ }
+
[Theory]
[InlineData(typeof(Size))]
[InlineData(typeof(SizeF))]
[Theory]
[MemberData(nameof(SizeFData))]
- public void ConvertToInvariantString(float width, float height)
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public void ConvertToInvariantString_NetFramework(float width, float height)
{
var str = Converter.ConvertToInvariantString(new SizeF(width, height));
Assert.Equal(FormattableString.Invariant($"{width:G9}, {height:G9}"), str);
[Theory]
[MemberData(nameof(SizeFData))]
- public void ConvertToString(float width, float height)
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public void ConvertToInvariantString_NotNetFramework(float width, float height)
+ {
+ var str = Converter.ConvertToInvariantString(new SizeF(width, height));
+ Assert.Equal(FormattableString.Invariant($"{width}, {height}"), str);
+ }
+
+ [Theory]
+ [MemberData(nameof(SizeFData))]
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public void ConvertToString_NetFramework(float width, float height)
{
var str = Converter.ConvertToString(new SizeF(width, height));
Assert.Equal(string.Format(CultureInfo.CurrentCulture, "{0:G9}{2} {1:G9}", width, height, CultureInfo.CurrentCulture.TextInfo.ListSeparator), str);
}
+
+ [Theory]
+ [MemberData(nameof(SizeFData))]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public void ConvertToString_NotNetFramework(float width, float height)
+ {
+ var str = Converter.ConvertToString(new SizeF(width, height));
+ Assert.Equal(string.Format(CultureInfo.CurrentCulture, "{0}{2} {1}", width, height, CultureInfo.CurrentCulture.TextInfo.ListSeparator), str);
+ }
}
}
Assert.Equal("60", T.Rows[60][3]);
C.Expression = "stdev (Child.age)";
- Assert.Equal((1.4142135623731).ToString(T.Locale), T.Rows[0][3]);
- Assert.Equal((1.4142135623731).ToString(T.Locale), T.Rows[60][3]);
+ Assert.Equal((1.4142135623730951).ToString(T.Locale), T.Rows[0][3]);
+ Assert.Equal((1.4142135623730951).ToString(T.Locale), T.Rows[60][3]);
C.Expression = "var (Child.age)";
Assert.Equal("2", T.Rows[0][3]);
yield return new object[] { "4294967297", "4294967297" };
yield return new object[] { "9223372036854775807", "9223372036854775807" };
yield return new object[] { "18446744073709551615", "18446744073709551615" };
+ }
+
+ public static IEnumerable<object[]> ParseIntegralBoundaries_TestData_NetFramework()
+ {
yield return new object[] { "79228162514264337593543950336", "7.9228162514264338E+28" };
}
+ public static IEnumerable<object[]> ParseIntegralBoundaries_TestData_NotNetFramework()
+ {
+ yield return new object[] { "79228162514264337593543950336", "7.922816251426434E+28" };
+ }
+
[Theory]
[MemberData(nameof(ParseIntegralBoundaries_TestData))]
public void Parse_IntegralBoundaries_LessThanMaxDouble_Works(string jsonString, string expectedToString)
});
}
+ [Theory]
+ [MemberData(nameof(ParseIntegralBoundaries_TestData_NetFramework))]
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public void Parse_IntegralBoundaries_LessThanMaxDouble_Works_NetFramework(string jsonString, string expectedToString)
+ {
+ Parse(jsonString, value =>
+ {
+ Assert.Equal(JsonType.Number, value.JsonType);
+ Assert.Equal(expectedToString, value.ToString());
+ });
+ }
+
+ [Theory]
+ [MemberData(nameof(ParseIntegralBoundaries_TestData_NotNetFramework))]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public void Parse_IntegralBoundaries_LessThanMaxDouble_Works_NotNetFramework(string jsonString, string expectedToString)
+ {
+ Parse(jsonString, value =>
+ {
+ Assert.Equal(JsonType.Number, value.JsonType);
+ Assert.Equal(expectedToString, value.ToString());
+ });
+ }
+
[Fact]
public void Parse_TrueFalse()
{
}
[Fact]
- public static void Spill_Optimizations_LiteralField()
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public static void Spill_Optimizations_LiteralField_NetFramework()
{
Expression<Func<double>> e =
Expression.Lambda<Func<double>>(
}
[Fact]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public static void Spill_Optimizations_LiteralField_NotNetFramework()
+ {
+ Expression<Func<double>> e =
+ Expression.Lambda<Func<double>>(
+ Expression.Add(
+ Expression.Field(null, typeof(Math).GetField(nameof(Math.PI))),
+ Spill(Expression.Constant(0.0))
+ )
+ );
+
+ e.VerifyIL(@"
+ .method float64 ::lambda_method(class [System.Linq.Expressions]System.Runtime.CompilerServices.Closure)
+ {
+ .maxstack 3
+ .locals init (
+ [0] float64,
+ [1] float64
+ )
+
+ // Save rhs (`try { 0.0 } finally {}`) into V_0
+ .try
+ {
+ IL_0000: ldc.r8 0
+ IL_0009: stloc.1
+ IL_000a: leave IL_0010
+ }
+ finally
+ {
+ IL_000f: endfinally
+ }
+ IL_0010: ldloc.1
+ IL_0011: stloc.0
+
+ // <OPTIMIZATION> Evaluate lhs (`Math.PI` gets inlined) </OPTIMIZATION>
+ IL_0012: ldc.r8 3.141592653589793
+
+ // Load rhs from V_0
+ IL_001b: ldloc.0
+
+ // Evaluate `lhs + rhs`
+ IL_001c: add
+
+ IL_001d: ret
+ }"
+ );
+ }
+
+ [Fact]
public static void Spill_Optimizations_StaticReadOnlyField()
{
Expression<Func<string>> e =
[XmlWriterInlineData(1, "XmlQualifiedName", "Decimal", false, null )]
[XmlWriterInlineData(1, "string", "Decimal", true, null )]
- [XmlWriterInlineData(1, "UInt64", "float", true, 1.844674E+19F )]
- [XmlWriterInlineData(1, "UInt32", "float", true, 4.294967E+09F )]
[XmlWriterInlineData(1, "UInt16", "float", true, null )]
[XmlWriterInlineData(1, "Int64", "float", true, 9.223372E+18F )]
- [XmlWriterInlineData(1, "Int32", "float", true, 2.147484E+09F )]
[XmlWriterInlineData(1, "Int16", "float", true, null )]
[XmlWriterInlineData(1, "Byte", "float", true, null )]
[XmlWriterInlineData(1, "SByte", "float", true, null )]
- [XmlWriterInlineData(1, "Decimal", "float", true, 7.922816E+28F )]
[XmlWriterInlineData(1, "float", "float", true, null )]
[XmlWriterInlineData(1, "object", "float", true, null )]
[XmlWriterInlineData(1, "bool", "float", false, null )]
[XmlWriterInlineData(1, "XmlQualifiedName", "Uri", true, null )]
[XmlWriterInlineData(1, "string", "Uri", true, null )]
- [XmlWriterInlineData(1, "UInt64", "Double", true, 1.84467440737096E+19D )]
[XmlWriterInlineData(1, "UInt32", "Double", true, null )]
[XmlWriterInlineData(1, "UInt16", "Double", true, null )]
- [XmlWriterInlineData(1, "Int64", "Double", true, 9.22337203685478E+18D )]
[XmlWriterInlineData(1, "Int32", "Double", true, null )]
[XmlWriterInlineData(1, "Int16", "Double", true, null )]
[XmlWriterInlineData(1, "Byte", "Double", true, null )]
[XmlWriterInlineData(1, "SByte", "Double", true, null )]
- [XmlWriterInlineData(1, "Decimal", "Double", true, 7.92281625142643E+28D )]
[XmlWriterInlineData(1, "float", "Double", true, null )]
[XmlWriterInlineData(1, "object", "Double", true, null )]
[XmlWriterInlineData(1, "bool", "Double", false, null )]
[XmlWriterInlineData(1, "XmlQualifiedName", "Double", false, null )]
[XmlWriterInlineData(1, "string", "Double", true, null )]
- [XmlWriterInlineData(1, "UInt64", "Single", true, 1.844674E+19F )]
- [XmlWriterInlineData(1, "UInt32", "Single", true, 4.294967E+09F )]
[XmlWriterInlineData(1, "UInt16", "Single", true, null )]
[XmlWriterInlineData(1, "Int64", "Single", true, 9.223372E+18F )]
- [XmlWriterInlineData(1, "Int32", "Single", true, 2.147484E+09F )]
[XmlWriterInlineData(1, "Int16", "Single", true, null )]
[XmlWriterInlineData(1, "Byte", "Single", true, null )]
[XmlWriterInlineData(1, "SByte", "Single", true, null )]
- [XmlWriterInlineData(1, "Decimal", "Single", true, 7.922816E+28F )]
[XmlWriterInlineData(1, "float", "Single", true, null )]
[XmlWriterInlineData(1, "object", "Single", true, null )]
[XmlWriterInlineData(1, "bool", "Single", false, null )]
[XmlWriterInlineData(21, "XmlQualifiedName", "Decimal", false, null )]
[XmlWriterInlineData(2, "string", "Decimal", true, null )]
- [XmlWriterInlineData(2, "UInt64", "float", true, 1.844674E+19F )]
- [XmlWriterInlineData(2, "UInt32", "float", true, 4.294967E+09F )]
[XmlWriterInlineData(2, "UInt16", "float", true, null )]
[XmlWriterInlineData(2, "Int64", "float", true, 9.223372E+18F )]
- [XmlWriterInlineData(2, "Int32", "float", true, 2.147484E+09F )]
[XmlWriterInlineData(2, "Int16", "float", true, null )]
[XmlWriterInlineData(2, "Byte", "float", true, null )]
[XmlWriterInlineData(2, "SByte", "float", true, null )]
- [XmlWriterInlineData(2, "Decimal", "float", true, 7.922816E+28F )]
[XmlWriterInlineData(2, "float", "float", true, null )]
[XmlWriterInlineData(2, "object", "float", true, null )]
[XmlWriterInlineData(2, "bool", "float", false, null )]
[XmlWriterInlineData(2, "XmlQualifiedName", "Uri", true, null )]
[XmlWriterInlineData(2, "string", "Uri", true, null )]
- [XmlWriterInlineData(2, "UInt64", "Double", true, 1.84467440737096E+19D )]
[XmlWriterInlineData(2, "UInt32", "Double", true, null )]
[XmlWriterInlineData(2, "UInt16", "Double", true, null )]
- [XmlWriterInlineData(2, "Int64", "Double", true, 9.22337203685478E+18D )]
[XmlWriterInlineData(2, "Int32", "Double", true, null )]
[XmlWriterInlineData(2, "Int16", "Double", true, null )]
[XmlWriterInlineData(2, "Byte", "Double", true, null )]
[XmlWriterInlineData(2, "SByte", "Double", true, null )]
- [XmlWriterInlineData(2, "Decimal", "Double", true, 7.92281625142643E+28D )]
[XmlWriterInlineData(2, "float", "Double", true, null )]
[XmlWriterInlineData(2, "object", "Double", true, null )]
[XmlWriterInlineData(2, "bool", "Double", false, null )]
[XmlWriterInlineData(2, "Single", "Double", true, null )]
[XmlWriterInlineData(2, "string", "Double", true, null )]
- [XmlWriterInlineData(2, "UInt64", "Single", true, 1.844674E+19F )]
- [XmlWriterInlineData(2, "UInt32", "Single", true, 4.294967E+09F )]
[XmlWriterInlineData(2, "UInt16", "Single", true, null )]
[XmlWriterInlineData(2, "Int64", "Single", true, 9.223372E+18F )]
- [XmlWriterInlineData(2, "Int32", "Single", true, 2.147484E+09F )]
[XmlWriterInlineData(2, "Int16", "Single", true, null )]
[XmlWriterInlineData(2, "Byte", "Single", true, null )]
[XmlWriterInlineData(2, "SByte", "Single", true, null )]
- [XmlWriterInlineData(2, "Decimal", "Single", true, 7.922816E+28F )]
[XmlWriterInlineData(2, "float", "Single", true, null )]
[XmlWriterInlineData(2, "object", "Single", true, null )]
[XmlWriterInlineData(2, "bool", "Single", false, null )]
[XmlWriterInlineData(1, "Double", "float", false, null)]
[XmlWriterInlineData(1, "Double", "Single", false, null)]
[XmlWriterInlineData(2, "Double", "Double", false, null)]
+
+ [XmlWriterInlineData(1, "UInt64", "float", true, 1.844674E+19F)]
+ [XmlWriterInlineData(1, "UInt32", "float", true, 4.294967E+09F)]
+ [XmlWriterInlineData(1, "Int32", "float", true, 2.147484E+09F)]
+ [XmlWriterInlineData(1, "Decimal", "float", true, 7.922816E+28F)]
+
+ [XmlWriterInlineData(1, "UInt64", "Double", true, 1.84467440737096E+19D)]
+ [XmlWriterInlineData(1, "Int64", "Double", true, 9.22337203685478E+18D)]
+ [XmlWriterInlineData(1, "Decimal", "Double", true, 7.92281625142643E+28D)]
+
+ [XmlWriterInlineData(1, "UInt64", "Single", true, 1.844674E+19F)]
+ [XmlWriterInlineData(1, "UInt32", "Single", true, 4.294967E+09F)]
+ [XmlWriterInlineData(1, "Int32", "Single", true, 2.147484E+09F)]
+ [XmlWriterInlineData(1, "Decimal", "Single", true, 7.922816E+28F)]
+
+ [XmlWriterInlineData(2, "UInt64", "float", true, 1.844674E+19F)]
+ [XmlWriterInlineData(2, "UInt32", "float", true, 4.294967E+09F)]
+ [XmlWriterInlineData(2, "Int32", "float", true, 2.147484E+09F)]
+ [XmlWriterInlineData(2, "Decimal", "float", true, 7.922816E+28F)]
+
+ [XmlWriterInlineData(2, "UInt64", "Double", true, 1.84467440737096E+19D)]
+ [XmlWriterInlineData(2, "Int64", "Double", true, 9.22337203685478E+18D)]
+ [XmlWriterInlineData(2, "Decimal", "Double", true, 7.92281625142643E+28D)]
+
+ [XmlWriterInlineData(2, "UInt64", "Single", true, 1.844674E+19F)]
+ [XmlWriterInlineData(2, "UInt32", "Single", true, 4.294967E+09F)]
+ [XmlWriterInlineData(2, "Int32", "Single", true, 2.147484E+09F)]
+ [XmlWriterInlineData(2, "Decimal", "Single", true, 7.922816E+28F)]
[SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
public void writeValue_27_NetFramework(XmlWriterUtils utils, int param, string sourceStr, string destStr, bool isValid, object expVal)
{
[Theory]
[XmlWriterInlineData(1, "Double", "float", true, float.PositiveInfinity)]
[XmlWriterInlineData(1, "Double", "Single", true, float.PositiveInfinity)]
- [XmlWriterInlineData(2, "Double", "Double", true, double.PositiveInfinity)]
+ [XmlWriterInlineData(2, "Double", "Double", true, 1.7976931348623157E+308)]
+
+ [XmlWriterInlineData(1, "UInt64", "float", true, 1.8446744E+19F)]
+ [XmlWriterInlineData(1, "UInt32", "float", true, 4.2949673E+09F)]
+ [XmlWriterInlineData(1, "Int32", "float", true, 2.1474836E+09F)]
+ [XmlWriterInlineData(1, "Decimal", "float", true, 7.9228163E+28F)]
+
+ [XmlWriterInlineData(1, "UInt64", "Double", true, 1.8446744073709552E+19D)]
+ [XmlWriterInlineData(1, "Int64", "Double", true, 9.223372036854776E+18D)]
+ [XmlWriterInlineData(1, "Decimal", "Double", true, 7.922816251426434E+28D)]
+
+ [XmlWriterInlineData(1, "UInt64", "Single", true, 1.8446744E+19F)]
+ [XmlWriterInlineData(1, "UInt32", "Single", true, 4.2949673E+09F)]
+ [XmlWriterInlineData(1, "Int32", "Single", true, 2.1474836E+09F)]
+ [XmlWriterInlineData(1, "Decimal", "Single", true, 7.9228163E+28F)]
+
+ [XmlWriterInlineData(2, "UInt64", "float", true, 1.8446744E+19F)]
+ [XmlWriterInlineData(2, "UInt32", "float", true, 4.2949673E+09F)]
+ [XmlWriterInlineData(2, "Int32", "float", true, 2.1474836E+09F)]
+ [XmlWriterInlineData(2, "Decimal", "float", true, 7.9228163E+28F)]
+
+ [XmlWriterInlineData(2, "UInt64", "Double", true, 1.8446744073709552E+19D)]
+ [XmlWriterInlineData(2, "Int64", "Double", true, 9.223372036854776E+18D)]
+ [XmlWriterInlineData(2, "Decimal", "Double", true, 7.922816251426434E+28D)]
+ [XmlWriterInlineData(2, "UInt64", "Single", true, 1.8446744E+19F)]
+ [XmlWriterInlineData(2, "UInt32", "Single", true, 4.2949673E+09F)]
+ [XmlWriterInlineData(2, "Int32", "Single", true, 2.1474836E+09F)]
+ [XmlWriterInlineData(2, "Decimal", "Single", true, 7.9228163E+28F)]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
public void writeValue_27_NotNetFramework(XmlWriterUtils utils, int param, string sourceStr, string destStr, bool isValid, object expVal)
{
Assert.StrictEqual(SerializeAndDeserialize<float>((float)2.3,
@"<?xml version=""1.0""?>
<float>2.3</float>"), (float)2.3);
+ }
+
+ [Fact]
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public static void Xml_FloatAsRoot_NetFramework()
+ {
Assert.StrictEqual(SerializeAndDeserialize<float>(float.MinValue,
@"<?xml version=""1.0""?>
<float>-3.40282347E+38</float>"), float.MinValue);
}
[Fact]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public static void Xml_FloatAsRoot_NotNetFramework()
+ {
+ Assert.StrictEqual(SerializeAndDeserialize<float>(float.MinValue,
+@"<?xml version=""1.0""?>
+<float>-3.4028235E+38</float>"), float.MinValue);
+ Assert.StrictEqual(SerializeAndDeserialize<float>(float.MaxValue,
+@"<?xml version=""1.0""?>
+<float>3.4028235E+38</float>"), float.MaxValue);
+ }
+
+ [Fact]
public static void Xml_GuidAsRoot()
{
Xml_GuidAsRoot(new XmlSerializer(typeof(Guid)));
public void FromString_NotNetFramework()
{
string[] overflowValues = { Double.MaxValue.ToString(), Double.MinValue.ToString() };
- VerifyFromString(Convert.ToDouble, Convert.ToDouble, overflowValues, new double[] { double.PositiveInfinity, double.NegativeInfinity });
+ VerifyFromString(Convert.ToDouble, Convert.ToDouble, overflowValues, new double[] { 1.7976931348623157E+308, -1.7976931348623157E+308 });
}
[Fact]
// Double
-12.2364,
- -12.236465923406483,
-1.7753E-83,
+12.345e+234,
+12e+1,
// Single
-12.2364f,
- -12.2364659234064826243f,
(float)+12.345e+234,
+12e+1f,
float.NegativeInfinity,
// Double
"-12.2364",
- "-12.2364659234065",
"-1.7753E-83",
"1.2345E+235",
"120",
// Single
"-12.2364",
- "-12.23647",
"Infinity",
"120",
"-Infinity",
{
object[] testValues =
{
+ // Double
+ -12.236465923406483,
+
// Single
-1.7753e-83f,
+ -12.2364659234064826243f,
};
string[] expectedValues =
{
+ // Double
+ "-12.236465923406483",
+
// Single
"-0",
+ "-12.236465",
};
for (int i = 0; i < testValues.Length; i++)
{
object[] testValues =
{
+ // Double
+ -12.236465923406483,
+
// Single
-1.7753e-83f,
+ -12.2364659234064826243f,
};
string[] expectedValues =
{
+ // Double
+ "-12.2364659234065",
+
// Single
"0",
+ "-12.23647",
};
for (int i = 0; i < testValues.Length; i++)
Assert.StrictEqual(SerializeAndDeserialize<float>((float)-1.2, "-1.2"), (float)-1.2);
Assert.StrictEqual(SerializeAndDeserialize<float>((float)0, "0"), (float)0);
Assert.StrictEqual(SerializeAndDeserialize<float>((float)2.3, "2.3"), (float)2.3);
+ }
+
+ [Fact]
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public static void DCJS_FloatAsRoot_NetFramework()
+ {
Assert.StrictEqual(SerializeAndDeserialize<float>(float.MinValue, "-3.40282347E+38"), float.MinValue);
Assert.StrictEqual(SerializeAndDeserialize<float>(float.MaxValue, "3.40282347E+38"), float.MaxValue);
}
[Fact]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public static void DCJS_FloatAsRoot_NotNetFramework()
+ {
+ Assert.StrictEqual(SerializeAndDeserialize<float>(float.MinValue, "-3.4028235E+38"), float.MinValue);
+ Assert.StrictEqual(SerializeAndDeserialize<float>(float.MaxValue, "3.4028235E+38"), float.MaxValue);
+ }
+
+ [Fact]
public static void DCJS_GuidAsRoot()
{
foreach (Guid value in new Guid[] { Guid.NewGuid(), Guid.Empty })
Assert.StrictEqual(DataContractSerializerHelper.SerializeAndDeserialize<float>((float)-1.2, @"<float xmlns=""http://schemas.microsoft.com/2003/10/Serialization/"">-1.2</float>"), (float)-1.2);
Assert.StrictEqual(DataContractSerializerHelper.SerializeAndDeserialize<float>((float)0, @"<float xmlns=""http://schemas.microsoft.com/2003/10/Serialization/"">0</float>"), (float)0);
Assert.StrictEqual(DataContractSerializerHelper.SerializeAndDeserialize<float>((float)2.3, @"<float xmlns=""http://schemas.microsoft.com/2003/10/Serialization/"">2.3</float>"), (float)2.3);
+ }
+
+ [Fact]
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public static void DCS_FloatAsRoot_NetFramework()
+ {
Assert.StrictEqual(DataContractSerializerHelper.SerializeAndDeserialize<float>(float.MinValue, @"<float xmlns=""http://schemas.microsoft.com/2003/10/Serialization/"">-3.40282347E+38</float>"), float.MinValue);
Assert.StrictEqual(DataContractSerializerHelper.SerializeAndDeserialize<float>(float.MaxValue, @"<float xmlns=""http://schemas.microsoft.com/2003/10/Serialization/"">3.40282347E+38</float>"), float.MaxValue);
}
[Fact]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public static void DCS_FloatAsRoot_NotNetFramework()
+ {
+ Assert.StrictEqual(DataContractSerializerHelper.SerializeAndDeserialize<float>(float.MinValue, @"<float xmlns=""http://schemas.microsoft.com/2003/10/Serialization/"">-3.4028235E+38</float>"), float.MinValue);
+ Assert.StrictEqual(DataContractSerializerHelper.SerializeAndDeserialize<float>(float.MaxValue, @"<float xmlns=""http://schemas.microsoft.com/2003/10/Serialization/"">3.4028235E+38</float>"), float.MaxValue);
+ }
+
+ [Fact]
public static void DCS_GuidAsRoot()
{
foreach (Guid value in new Guid[] { Guid.NewGuid(), Guid.Empty })
/// Roundtrips a Datacontract type which contains Primitive types assigned to member of type object.
/// Resolver is plugged in and resolves the primitive types. Verify resolver called during ser and deser
/// </summary>
- [Fact]
- public static void DCS_BasicRoundTripResolvePrimitiveTypes()
+ private static void DCS_BasicRoundTripResolvePrimitiveTypes(string baseline)
{
var dataContractSerializerSettings = new DataContractSerializerSettings()
{
PreserveObjectReferences = false
};
- string baseline = @"<ObjectContainer xmlns=""http://schemas.datacontract.org/2004/07/SerializationTestTypes"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance""><_data i:type=""a:PrimitiveContainer_foo"" xmlns:a=""http://www.default.com""><a i:type=""a:Boolean_foo"">false</a><array1><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/></array1><b i:type=""a:Byte_foo"">255</b><c i:type=""a:Byte_foo"">0</c><d i:type=""a:Char_foo"">65535</d><e i:type=""a:Decimal_foo"">79228162514264337593543950335</e><f i:type=""a:Decimal_foo"">-1</f><f5 i:type=""a:DateTime_foo"">9999-12-31T23:59:59.9999999</f5><g i:type=""a:Decimal_foo"">-79228162514264337593543950335</g><guidData i:type=""a:Guid_foo"">4bc848b1-a541-40bf-8aa9-dd6ccb6d0e56</guidData><h i:type=""a:Decimal_foo"">1</h><i i:type=""a:Decimal_foo"">0</i><j i:type=""a:Decimal_foo"">0</j><k i:type=""a:Double_foo"">0</k><l i:type=""a:Double_foo"">4.94065645841247E-324</l><lDTO xmlns:b=""http://schemas.datacontract.org/2004/07/System""/><m i:type=""a:Double_foo"">1.7976931348623157E+308</m><n i:type=""a:Double_foo"">-1.7976931348623157E+308</n><nDTO i:type=""a:DateTimeOffset_foo""><DateTime xmlns=""http://schemas.datacontract.org/2004/07/System"">9999-12-31T23:59:59.9999999Z</DateTime><OffsetMinutes xmlns=""http://schemas.datacontract.org/2004/07/System"">0</OffsetMinutes></nDTO><o i:type=""a:Double_foo"">NaN</o><obj/><p i:type=""a:Double_foo"">-INF</p><q i:type=""a:Double_foo"">INF</q><r i:type=""a:Single_foo"">0</r><s i:type=""a:Single_foo"">1.401298E-45</s><strData i:nil=""true""/><t i:type=""a:Single_foo"">-3.40282347E+38</t><timeSpan i:type=""a:TimeSpan_foo"">P10675199DT2H48M5.4775807S</timeSpan><u i:type=""a:Single_foo"">3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v i:type=""a:Single_foo"">NaN</v><w i:type=""a:Single_foo"">-INF</w><x i:type=""a:Single_foo"">INF</x><xmlQualifiedName i:type=""a:XmlQualifiedName_foo"" xmlns:b=""http://www.microsoft.com"">b:WCF</xmlQualifiedName><y i:type=""a:Int32_foo"">0</y><z i:type=""a:Int32_foo"">2147483647</z><z1 i:type=""a:Int32_foo"">-2147483648</z1><z2 i:type=""a:Int64_foo"">0</z2><z3 i:type=""a:Int64_foo"">9223372036854775807</z3><z4 i:type=""a:Int64_foo"">-9223372036854775808</z4><z5/><z6 i:type=""a:SByte_foo"">0</z6><z7 i:type=""a:SByte_foo"">127</z7><z8 i:type=""a:SByte_foo"">-128</z8><z9 i:type=""a:Int16_foo"">0</z9><z91 i:type=""a:Int16_foo"">32767</z91><z92 i:type=""a:Int16_foo"">-32768</z92><z93 i:type=""a:String_foo"">abc</z93><z94 i:type=""a:UInt16_foo"">0</z94><z95 i:type=""a:UInt16_foo"">65535</z95><z96 i:type=""a:UInt16_foo"">0</z96><z97 i:type=""a:UInt32_foo"">0</z97><z98 i:type=""a:UInt32_foo"">4294967295</z98><z99 i:type=""a:UInt32_foo"">0</z99><z990 i:type=""a:UInt64_foo"">0</z990><z991 i:type=""a:UInt64_foo"">18446744073709551615</z991><z992 i:type=""a:UInt64_foo"">0</z992><z993>AQIDBA==</z993></_data><_data2 i:type=""a:PrimitiveContainer_foo"" xmlns:a=""http://www.default.com""><a i:type=""a:Boolean_foo"">false</a><array1><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/></array1><b i:type=""a:Byte_foo"">255</b><c i:type=""a:Byte_foo"">0</c><d i:type=""a:Char_foo"">65535</d><e i:type=""a:Decimal_foo"">79228162514264337593543950335</e><f i:type=""a:Decimal_foo"">-1</f><f5 i:type=""a:DateTime_foo"">9999-12-31T23:59:59.9999999</f5><g i:type=""a:Decimal_foo"">-79228162514264337593543950335</g><guidData i:type=""a:Guid_foo"">4bc848b1-a541-40bf-8aa9-dd6ccb6d0e56</guidData><h i:type=""a:Decimal_foo"">1</h><i i:type=""a:Decimal_foo"">0</i><j i:type=""a:Decimal_foo"">0</j><k i:type=""a:Double_foo"">0</k><l i:type=""a:Double_foo"">4.94065645841247E-324</l><lDTO xmlns:b=""http://schemas.datacontract.org/2004/07/System""/><m i:type=""a:Double_foo"">1.7976931348623157E+308</m><n i:type=""a:Double_foo"">-1.7976931348623157E+308</n><nDTO i:type=""a:DateTimeOffset_foo""><DateTime xmlns=""http://schemas.datacontract.org/2004/07/System"">9999-12-31T23:59:59.9999999Z</DateTime><OffsetMinutes xmlns=""http://schemas.datacontract.org/2004/07/System"">0</OffsetMinutes></nDTO><o i:type=""a:Double_foo"">NaN</o><obj/><p i:type=""a:Double_foo"">-INF</p><q i:type=""a:Double_foo"">INF</q><r i:type=""a:Single_foo"">0</r><s i:type=""a:Single_foo"">1.401298E-45</s><strData i:nil=""true""/><t i:type=""a:Single_foo"">-3.40282347E+38</t><timeSpan i:type=""a:TimeSpan_foo"">P10675199DT2H48M5.4775807S</timeSpan><u i:type=""a:Single_foo"">3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v i:type=""a:Single_foo"">NaN</v><w i:type=""a:Single_foo"">-INF</w><x i:type=""a:Single_foo"">INF</x><xmlQualifiedName i:type=""a:XmlQualifiedName_foo"" xmlns:b=""http://www.microsoft.com"">b:WCF</xmlQualifiedName><y i:type=""a:Int32_foo"">0</y><z i:type=""a:Int32_foo"">2147483647</z><z1 i:type=""a:Int32_foo"">-2147483648</z1><z2 i:type=""a:Int64_foo"">0</z2><z3 i:type=""a:Int64_foo"">9223372036854775807</z3><z4 i:type=""a:Int64_foo"">-9223372036854775808</z4><z5/><z6 i:type=""a:SByte_foo"">0</z6><z7 i:type=""a:SByte_foo"">127</z7><z8 i:type=""a:SByte_foo"">-128</z8><z9 i:type=""a:Int16_foo"">0</z9><z91 i:type=""a:Int16_foo"">32767</z91><z92 i:type=""a:Int16_foo"">-32768</z92><z93 i:type=""a:String_foo"">abc</z93><z94 i:type=""a:UInt16_foo"">0</z94><z95 i:type=""a:UInt16_foo"">65535</z95><z96 i:type=""a:UInt16_foo"">0</z96><z97 i:type=""a:UInt32_foo"">0</z97><z98 i:type=""a:UInt32_foo"">4294967295</z98><z99 i:type=""a:UInt32_foo"">0</z99><z990 i:type=""a:UInt64_foo"">0</z990><z991 i:type=""a:UInt64_foo"">18446744073709551615</z991><z992 i:type=""a:UInt64_foo"">0</z992><z993>AQIDBA==</z993></_data2></ObjectContainer>";
var value = new SerializationTestTypes.ObjectContainer(new SerializationTestTypes.PrimitiveContainer());
var actual = DataContractSerializerHelper.SerializeAndDeserialize(value, baseline, dataContractSerializerSettings);
SerializationTestTypes.ComparisonHelper.CompareRecursively(value, actual);
}
+ [Fact]
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public static void DCS_BasicRoundTripResolvePrimitiveTypes_NetFramework()
+ {
+ string baseline = @"<ObjectContainer xmlns=""http://schemas.datacontract.org/2004/07/SerializationTestTypes"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance""><_data i:type=""a:PrimitiveContainer_foo"" xmlns:a=""http://www.default.com""><a i:type=""a:Boolean_foo"">false</a><array1><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/></array1><b i:type=""a:Byte_foo"">255</b><c i:type=""a:Byte_foo"">0</c><d i:type=""a:Char_foo"">65535</d><e i:type=""a:Decimal_foo"">79228162514264337593543950335</e><f i:type=""a:Decimal_foo"">-1</f><f5 i:type=""a:DateTime_foo"">9999-12-31T23:59:59.9999999</f5><g i:type=""a:Decimal_foo"">-79228162514264337593543950335</g><guidData i:type=""a:Guid_foo"">4bc848b1-a541-40bf-8aa9-dd6ccb6d0e56</guidData><h i:type=""a:Decimal_foo"">1</h><i i:type=""a:Decimal_foo"">0</i><j i:type=""a:Decimal_foo"">0</j><k i:type=""a:Double_foo"">0</k><l i:type=""a:Double_foo"">4.94065645841247E-324</l><lDTO xmlns:b=""http://schemas.datacontract.org/2004/07/System""/><m i:type=""a:Double_foo"">1.7976931348623157E+308</m><n i:type=""a:Double_foo"">-1.7976931348623157E+308</n><nDTO i:type=""a:DateTimeOffset_foo""><DateTime xmlns=""http://schemas.datacontract.org/2004/07/System"">9999-12-31T23:59:59.9999999Z</DateTime><OffsetMinutes xmlns=""http://schemas.datacontract.org/2004/07/System"">0</OffsetMinutes></nDTO><o i:type=""a:Double_foo"">NaN</o><obj/><p i:type=""a:Double_foo"">-INF</p><q i:type=""a:Double_foo"">INF</q><r i:type=""a:Single_foo"">0</r><s i:type=""a:Single_foo"">1.401298E-45</s><strData i:nil=""true""/><t i:type=""a:Single_foo"">-3.40282347E+38</t><timeSpan i:type=""a:TimeSpan_foo"">P10675199DT2H48M5.4775807S</timeSpan><u i:type=""a:Single_foo"">3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v i:type=""a:Single_foo"">NaN</v><w i:type=""a:Single_foo"">-INF</w><x i:type=""a:Single_foo"">INF</x><xmlQualifiedName i:type=""a:XmlQualifiedName_foo"" xmlns:b=""http://www.microsoft.com"">b:WCF</xmlQualifiedName><y i:type=""a:Int32_foo"">0</y><z i:type=""a:Int32_foo"">2147483647</z><z1 i:type=""a:Int32_foo"">-2147483648</z1><z2 i:type=""a:Int64_foo"">0</z2><z3 i:type=""a:Int64_foo"">9223372036854775807</z3><z4 i:type=""a:Int64_foo"">-9223372036854775808</z4><z5/><z6 i:type=""a:SByte_foo"">0</z6><z7 i:type=""a:SByte_foo"">127</z7><z8 i:type=""a:SByte_foo"">-128</z8><z9 i:type=""a:Int16_foo"">0</z9><z91 i:type=""a:Int16_foo"">32767</z91><z92 i:type=""a:Int16_foo"">-32768</z92><z93 i:type=""a:String_foo"">abc</z93><z94 i:type=""a:UInt16_foo"">0</z94><z95 i:type=""a:UInt16_foo"">65535</z95><z96 i:type=""a:UInt16_foo"">0</z96><z97 i:type=""a:UInt32_foo"">0</z97><z98 i:type=""a:UInt32_foo"">4294967295</z98><z99 i:type=""a:UInt32_foo"">0</z99><z990 i:type=""a:UInt64_foo"">0</z990><z991 i:type=""a:UInt64_foo"">18446744073709551615</z991><z992 i:type=""a:UInt64_foo"">0</z992><z993>AQIDBA==</z993></_data><_data2 i:type=""a:PrimitiveContainer_foo"" xmlns:a=""http://www.default.com""><a i:type=""a:Boolean_foo"">false</a><array1><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/></array1><b i:type=""a:Byte_foo"">255</b><c i:type=""a:Byte_foo"">0</c><d i:type=""a:Char_foo"">65535</d><e i:type=""a:Decimal_foo"">79228162514264337593543950335</e><f i:type=""a:Decimal_foo"">-1</f><f5 i:type=""a:DateTime_foo"">9999-12-31T23:59:59.9999999</f5><g i:type=""a:Decimal_foo"">-79228162514264337593543950335</g><guidData i:type=""a:Guid_foo"">4bc848b1-a541-40bf-8aa9-dd6ccb6d0e56</guidData><h i:type=""a:Decimal_foo"">1</h><i i:type=""a:Decimal_foo"">0</i><j i:type=""a:Decimal_foo"">0</j><k i:type=""a:Double_foo"">0</k><l i:type=""a:Double_foo"">4.94065645841247E-324</l><lDTO xmlns:b=""http://schemas.datacontract.org/2004/07/System""/><m i:type=""a:Double_foo"">1.7976931348623157E+308</m><n i:type=""a:Double_foo"">-1.7976931348623157E+308</n><nDTO i:type=""a:DateTimeOffset_foo""><DateTime xmlns=""http://schemas.datacontract.org/2004/07/System"">9999-12-31T23:59:59.9999999Z</DateTime><OffsetMinutes xmlns=""http://schemas.datacontract.org/2004/07/System"">0</OffsetMinutes></nDTO><o i:type=""a:Double_foo"">NaN</o><obj/><p i:type=""a:Double_foo"">-INF</p><q i:type=""a:Double_foo"">INF</q><r i:type=""a:Single_foo"">0</r><s i:type=""a:Single_foo"">1.401298E-45</s><strData i:nil=""true""/><t i:type=""a:Single_foo"">-3.40282347E+38</t><timeSpan i:type=""a:TimeSpan_foo"">P10675199DT2H48M5.4775807S</timeSpan><u i:type=""a:Single_foo"">3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v i:type=""a:Single_foo"">NaN</v><w i:type=""a:Single_foo"">-INF</w><x i:type=""a:Single_foo"">INF</x><xmlQualifiedName i:type=""a:XmlQualifiedName_foo"" xmlns:b=""http://www.microsoft.com"">b:WCF</xmlQualifiedName><y i:type=""a:Int32_foo"">0</y><z i:type=""a:Int32_foo"">2147483647</z><z1 i:type=""a:Int32_foo"">-2147483648</z1><z2 i:type=""a:Int64_foo"">0</z2><z3 i:type=""a:Int64_foo"">9223372036854775807</z3><z4 i:type=""a:Int64_foo"">-9223372036854775808</z4><z5/><z6 i:type=""a:SByte_foo"">0</z6><z7 i:type=""a:SByte_foo"">127</z7><z8 i:type=""a:SByte_foo"">-128</z8><z9 i:type=""a:Int16_foo"">0</z9><z91 i:type=""a:Int16_foo"">32767</z91><z92 i:type=""a:Int16_foo"">-32768</z92><z93 i:type=""a:String_foo"">abc</z93><z94 i:type=""a:UInt16_foo"">0</z94><z95 i:type=""a:UInt16_foo"">65535</z95><z96 i:type=""a:UInt16_foo"">0</z96><z97 i:type=""a:UInt32_foo"">0</z97><z98 i:type=""a:UInt32_foo"">4294967295</z98><z99 i:type=""a:UInt32_foo"">0</z99><z990 i:type=""a:UInt64_foo"">0</z990><z991 i:type=""a:UInt64_foo"">18446744073709551615</z991><z992 i:type=""a:UInt64_foo"">0</z992><z993>AQIDBA==</z993></_data2></ObjectContainer>";
+ DCS_BasicRoundTripResolvePrimitiveTypes(baseline);
+ }
+
+ /// <summary>
+ /// Roundtrips a Datacontract type which contains Primitive types assigned to member of type object.
+ /// Resolver is plugged in and resolves the primitive types. Verify resolver called during ser and deser
+ /// </summary>
+ [Fact]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public static void DCS_BasicRoundTripResolvePrimitiveTypes_NotNetFramework()
+ {
+ string baseline = @"<ObjectContainer xmlns=""http://schemas.datacontract.org/2004/07/SerializationTestTypes"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance""><_data i:type=""a:PrimitiveContainer_foo"" xmlns:a=""http://www.default.com""><a i:type=""a:Boolean_foo"">false</a><array1><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/></array1><b i:type=""a:Byte_foo"">255</b><c i:type=""a:Byte_foo"">0</c><d i:type=""a:Char_foo"">65535</d><e i:type=""a:Decimal_foo"">79228162514264337593543950335</e><f i:type=""a:Decimal_foo"">-1</f><f5 i:type=""a:DateTime_foo"">9999-12-31T23:59:59.9999999</f5><g i:type=""a:Decimal_foo"">-79228162514264337593543950335</g><guidData i:type=""a:Guid_foo"">4bc848b1-a541-40bf-8aa9-dd6ccb6d0e56</guidData><h i:type=""a:Decimal_foo"">1</h><i i:type=""a:Decimal_foo"">0</i><j i:type=""a:Decimal_foo"">0</j><k i:type=""a:Double_foo"">0</k><l i:type=""a:Double_foo"">5E-324</l><lDTO xmlns:b=""http://schemas.datacontract.org/2004/07/System""/><m i:type=""a:Double_foo"">1.7976931348623157E+308</m><n i:type=""a:Double_foo"">-1.7976931348623157E+308</n><nDTO i:type=""a:DateTimeOffset_foo""><DateTime xmlns=""http://schemas.datacontract.org/2004/07/System"">9999-12-31T23:59:59.9999999Z</DateTime><OffsetMinutes xmlns=""http://schemas.datacontract.org/2004/07/System"">0</OffsetMinutes></nDTO><o i:type=""a:Double_foo"">NaN</o><obj/><p i:type=""a:Double_foo"">-INF</p><q i:type=""a:Double_foo"">INF</q><r i:type=""a:Single_foo"">0</r><s i:type=""a:Single_foo"">1E-45</s><strData i:nil=""true""/><t i:type=""a:Single_foo"">-3.4028235E+38</t><timeSpan i:type=""a:TimeSpan_foo"">P10675199DT2H48M5.4775807S</timeSpan><u i:type=""a:Single_foo"">3.4028235E+38</u><uri>http://www.microsoft.com/</uri><v i:type=""a:Single_foo"">NaN</v><w i:type=""a:Single_foo"">-INF</w><x i:type=""a:Single_foo"">INF</x><xmlQualifiedName i:type=""a:XmlQualifiedName_foo"" xmlns:b=""http://www.microsoft.com"">b:WCF</xmlQualifiedName><y i:type=""a:Int32_foo"">0</y><z i:type=""a:Int32_foo"">2147483647</z><z1 i:type=""a:Int32_foo"">-2147483648</z1><z2 i:type=""a:Int64_foo"">0</z2><z3 i:type=""a:Int64_foo"">9223372036854775807</z3><z4 i:type=""a:Int64_foo"">-9223372036854775808</z4><z5/><z6 i:type=""a:SByte_foo"">0</z6><z7 i:type=""a:SByte_foo"">127</z7><z8 i:type=""a:SByte_foo"">-128</z8><z9 i:type=""a:Int16_foo"">0</z9><z91 i:type=""a:Int16_foo"">32767</z91><z92 i:type=""a:Int16_foo"">-32768</z92><z93 i:type=""a:String_foo"">abc</z93><z94 i:type=""a:UInt16_foo"">0</z94><z95 i:type=""a:UInt16_foo"">65535</z95><z96 i:type=""a:UInt16_foo"">0</z96><z97 i:type=""a:UInt32_foo"">0</z97><z98 i:type=""a:UInt32_foo"">4294967295</z98><z99 i:type=""a:UInt32_foo"">0</z99><z990 i:type=""a:UInt64_foo"">0</z990><z991 i:type=""a:UInt64_foo"">18446744073709551615</z991><z992 i:type=""a:UInt64_foo"">0</z992><z993>AQIDBA==</z993></_data><_data2 i:type=""a:PrimitiveContainer_foo"" xmlns:a=""http://www.default.com""><a i:type=""a:Boolean_foo"">false</a><array1><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/><anyType xmlns=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""/></array1><b i:type=""a:Byte_foo"">255</b><c i:type=""a:Byte_foo"">0</c><d i:type=""a:Char_foo"">65535</d><e i:type=""a:Decimal_foo"">79228162514264337593543950335</e><f i:type=""a:Decimal_foo"">-1</f><f5 i:type=""a:DateTime_foo"">9999-12-31T23:59:59.9999999</f5><g i:type=""a:Decimal_foo"">-79228162514264337593543950335</g><guidData i:type=""a:Guid_foo"">4bc848b1-a541-40bf-8aa9-dd6ccb6d0e56</guidData><h i:type=""a:Decimal_foo"">1</h><i i:type=""a:Decimal_foo"">0</i><j i:type=""a:Decimal_foo"">0</j><k i:type=""a:Double_foo"">0</k><l i:type=""a:Double_foo"">5E-324</l><lDTO xmlns:b=""http://schemas.datacontract.org/2004/07/System""/><m i:type=""a:Double_foo"">1.7976931348623157E+308</m><n i:type=""a:Double_foo"">-1.7976931348623157E+308</n><nDTO i:type=""a:DateTimeOffset_foo""><DateTime xmlns=""http://schemas.datacontract.org/2004/07/System"">9999-12-31T23:59:59.9999999Z</DateTime><OffsetMinutes xmlns=""http://schemas.datacontract.org/2004/07/System"">0</OffsetMinutes></nDTO><o i:type=""a:Double_foo"">NaN</o><obj/><p i:type=""a:Double_foo"">-INF</p><q i:type=""a:Double_foo"">INF</q><r i:type=""a:Single_foo"">0</r><s i:type=""a:Single_foo"">1E-45</s><strData i:nil=""true""/><t i:type=""a:Single_foo"">-3.4028235E+38</t><timeSpan i:type=""a:TimeSpan_foo"">P10675199DT2H48M5.4775807S</timeSpan><u i:type=""a:Single_foo"">3.4028235E+38</u><uri>http://www.microsoft.com/</uri><v i:type=""a:Single_foo"">NaN</v><w i:type=""a:Single_foo"">-INF</w><x i:type=""a:Single_foo"">INF</x><xmlQualifiedName i:type=""a:XmlQualifiedName_foo"" xmlns:b=""http://www.microsoft.com"">b:WCF</xmlQualifiedName><y i:type=""a:Int32_foo"">0</y><z i:type=""a:Int32_foo"">2147483647</z><z1 i:type=""a:Int32_foo"">-2147483648</z1><z2 i:type=""a:Int64_foo"">0</z2><z3 i:type=""a:Int64_foo"">9223372036854775807</z3><z4 i:type=""a:Int64_foo"">-9223372036854775808</z4><z5/><z6 i:type=""a:SByte_foo"">0</z6><z7 i:type=""a:SByte_foo"">127</z7><z8 i:type=""a:SByte_foo"">-128</z8><z9 i:type=""a:Int16_foo"">0</z9><z91 i:type=""a:Int16_foo"">32767</z91><z92 i:type=""a:Int16_foo"">-32768</z92><z93 i:type=""a:String_foo"">abc</z93><z94 i:type=""a:UInt16_foo"">0</z94><z95 i:type=""a:UInt16_foo"">65535</z95><z96 i:type=""a:UInt16_foo"">0</z96><z97 i:type=""a:UInt32_foo"">0</z97><z98 i:type=""a:UInt32_foo"">4294967295</z98><z99 i:type=""a:UInt32_foo"">0</z99><z990 i:type=""a:UInt64_foo"">0</z990><z991 i:type=""a:UInt64_foo"">18446744073709551615</z991><z992 i:type=""a:UInt64_foo"">0</z992><z993>AQIDBA==</z993></_data2></ObjectContainer>";
+ DCS_BasicRoundTripResolvePrimitiveTypes(baseline);
+ }
+
/// <summary>
/// Roundtrip Datacontract types which contains members of type enum and struct.
/// Some enums are resolved by Resolver and others by the KT attribute.
TestObjectInObjectContainerWithSimpleResolver(new SerializationTestTypes.CharClass(), "<ObjectContainer xmlns=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><_data i:type=\"a:SerializationTestTypes.CharClass***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.CharClass***\"><c>0</c><c1>65535</c1><c2>0</c2><c3>99</c3></_data><_data2 i:type=\"a:SerializationTestTypes.CharClass***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.CharClass***\"><c>0</c><c1>65535</c1><c2>0</c2><c3>99</c3></_data2></ObjectContainer>");
- TestObjectInObjectContainerWithSimpleResolver(new SerializationTestTypes.AllTypes(), "<ObjectContainer xmlns=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><_data i:type=\"a:SerializationTestTypes.AllTypes***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>5642b5d2-87c3-a724-2390-997062f3f7a2</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>4.94065645841247E-324</l><lDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"/><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1.401298E-45</s><strData i:nil=\"true\"/><t>-3.40282347E+38</t><timeSpan i:type=\"b:duration\" xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/\">P10675199DT2H48M5.4775807S</timeSpan><u>3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data><_data2 i:type=\"a:SerializationTestTypes.AllTypes***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>5642b5d2-87c3-a724-2390-997062f3f7a2</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>4.94065645841247E-324</l><lDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"/><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1.401298E-45</s><strData i:nil=\"true\"/><t>-3.40282347E+38</t><timeSpan i:type=\"b:duration\" xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/\">P10675199DT2H48M5.4775807S</timeSpan><u>3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data2></ObjectContainer>");
-
- TestObjectInObjectContainerWithSimpleResolver(new SerializationTestTypes.AllTypes2(), "<ObjectContainer xmlns=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><_data i:type=\"a:SerializationTestTypes.AllTypes2***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes2***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>cac76333-577f-7e1f-0389-789b0d97f395</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>4.94065645841247E-324</l><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1.401298E-45</s><strData i:nil=\"true\"/><t>-3.40282347E+38</t><timeSpan>P10675199DT2H48M5.4775807S</timeSpan><u>3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data><_data2 i:type=\"a:SerializationTestTypes.AllTypes2***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes2***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>cac76333-577f-7e1f-0389-789b0d97f395</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>4.94065645841247E-324</l><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1.401298E-45</s><strData i:nil=\"true\"/><t>-3.40282347E+38</t><timeSpan>P10675199DT2H48M5.4775807S</timeSpan><u>3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data2></ObjectContainer>");
-
TestObjectInObjectContainerWithSimpleResolver(new SerializationTestTypes.DictContainer(), "<ObjectContainer xmlns=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><_data i:type=\"a:SerializationTestTypes.DictContainer***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.DictContainer***\"><dictionaryData xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"><b:KeyValueOfbase64Binarybase64Binary><b:Key>S3sf7NHCbkyVtgYKERsK/Q==</b:Key><b:Value>kNwxmEzKsk2TNVihAl7PKQ==</b:Value></b:KeyValueOfbase64Binarybase64Binary><b:KeyValueOfbase64Binarybase64Binary><b:Key>R5hoXhAack+qrhmyR80IeA==</b:Key><b:Value>kYav59VD50mHdRsBJr2UPA==</b:Value></b:KeyValueOfbase64Binarybase64Binary><b:KeyValueOfbase64Binarybase64Binary><b:Key>3WgRcQBK5U2fPjjd+9oBRA==</b:Key><b:Value>r7SFJrYJVkqB25UjGj0Cdg==</b:Value></b:KeyValueOfbase64Binarybase64Binary></dictionaryData></_data><_data2 i:type=\"a:SerializationTestTypes.DictContainer***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.DictContainer***\"><dictionaryData xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"><b:KeyValueOfbase64Binarybase64Binary><b:Key>S3sf7NHCbkyVtgYKERsK/Q==</b:Key><b:Value>kNwxmEzKsk2TNVihAl7PKQ==</b:Value></b:KeyValueOfbase64Binarybase64Binary><b:KeyValueOfbase64Binarybase64Binary><b:Key>R5hoXhAack+qrhmyR80IeA==</b:Key><b:Value>kYav59VD50mHdRsBJr2UPA==</b:Value></b:KeyValueOfbase64Binarybase64Binary><b:KeyValueOfbase64Binarybase64Binary><b:Key>3WgRcQBK5U2fPjjd+9oBRA==</b:Key><b:Value>r7SFJrYJVkqB25UjGj0Cdg==</b:Value></b:KeyValueOfbase64Binarybase64Binary></dictionaryData></_data2></ObjectContainer>");
TestObjectInObjectContainerWithSimpleResolver(new SerializationTestTypes.ListContainer(), "<ObjectContainer xmlns=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><_data i:type=\"a:SerializationTestTypes.ListContainer***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.ListContainer***\"><listData xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"><b:string>TestData</b:string></listData></_data><_data2 i:type=\"a:SerializationTestTypes.ListContainer***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.ListContainer***\"><listData xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"><b:string>TestData</b:string></listData></_data2></ObjectContainer>");
}
}
+ [Fact]
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public static void DCS_BasicPerSerializerRoundTripAndCompare_EnumStruct_NetFramework()
+ {
+ TestObjectInObjectContainerWithSimpleResolver(new SerializationTestTypes.AllTypes(), "<ObjectContainer xmlns=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><_data i:type=\"a:SerializationTestTypes.AllTypes***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>5642b5d2-87c3-a724-2390-997062f3f7a2</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>4.94065645841247E-324</l><lDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"/><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1.401298E-45</s><strData i:nil=\"true\"/><t>-3.40282347E+38</t><timeSpan i:type=\"b:duration\" xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/\">P10675199DT2H48M5.4775807S</timeSpan><u>3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data><_data2 i:type=\"a:SerializationTestTypes.AllTypes***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>5642b5d2-87c3-a724-2390-997062f3f7a2</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>4.94065645841247E-324</l><lDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"/><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1.401298E-45</s><strData i:nil=\"true\"/><t>-3.40282347E+38</t><timeSpan i:type=\"b:duration\" xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/\">P10675199DT2H48M5.4775807S</timeSpan><u>3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data2></ObjectContainer>");
+
+ TestObjectInObjectContainerWithSimpleResolver(new SerializationTestTypes.AllTypes2(), "<ObjectContainer xmlns=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><_data i:type=\"a:SerializationTestTypes.AllTypes2***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes2***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>cac76333-577f-7e1f-0389-789b0d97f395</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>4.94065645841247E-324</l><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1.401298E-45</s><strData i:nil=\"true\"/><t>-3.40282347E+38</t><timeSpan>P10675199DT2H48M5.4775807S</timeSpan><u>3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data><_data2 i:type=\"a:SerializationTestTypes.AllTypes2***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes2***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>cac76333-577f-7e1f-0389-789b0d97f395</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>4.94065645841247E-324</l><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1.401298E-45</s><strData i:nil=\"true\"/><t>-3.40282347E+38</t><timeSpan>P10675199DT2H48M5.4775807S</timeSpan><u>3.40282347E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data2></ObjectContainer>");
+ }
+
+ [Fact]
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public static void DCS_BasicPerSerializerRoundTripAndCompare_EnumStruct_NotNetFramework()
+ {
+ TestObjectInObjectContainerWithSimpleResolver(new SerializationTestTypes.AllTypes(), "<ObjectContainer xmlns=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><_data i:type=\"a:SerializationTestTypes.AllTypes***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>5642b5d2-87c3-a724-2390-997062f3f7a2</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>5E-324</l><lDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"/><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1E-45</s><strData i:nil=\"true\"/><t>-3.4028235E+38</t><timeSpan i:type=\"b:duration\" xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/\">P10675199DT2H48M5.4775807S</timeSpan><u>3.4028235E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data><_data2 i:type=\"a:SerializationTestTypes.AllTypes***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>5642b5d2-87c3-a724-2390-997062f3f7a2</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>5E-324</l><lDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"/><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1E-45</s><strData i:nil=\"true\"/><t>-3.4028235E+38</t><timeSpan i:type=\"b:duration\" xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/\">P10675199DT2H48M5.4775807S</timeSpan><u>3.4028235E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data2></ObjectContainer>");
+
+ TestObjectInObjectContainerWithSimpleResolver(new SerializationTestTypes.AllTypes2(), "<ObjectContainer xmlns=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><_data i:type=\"a:SerializationTestTypes.AllTypes2***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes2***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>cac76333-577f-7e1f-0389-789b0d97f395</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>5E-324</l><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1E-45</s><strData i:nil=\"true\"/><t>-3.4028235E+38</t><timeSpan>P10675199DT2H48M5.4775807S</timeSpan><u>3.4028235E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data><_data2 i:type=\"a:SerializationTestTypes.AllTypes2***\" xmlns:a=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.AllTypes2***\"><a>false</a><array1><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/><anyType xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\"/></array1><b>255</b><c>0</c><d>65535</d><e>79228162514264337593543950335</e><enumArrayData><MyEnum1>red</MyEnum1></enumArrayData><enumBase1 i:type=\"b:SerializationTestTypes.MyEnum1***\" xmlns:b=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes.MyEnum1***\">red</enumBase1><f>-1</f><f5>0001-01-01T00:00:00</f5><g>-79228162514264337593543950335</g><guidData>cac76333-577f-7e1f-0389-789b0d97f395</guidData><h>1</h><i>0</i><j>0</j><k>0</k><l>5E-324</l><m>1.7976931348623157E+308</m><n>-1.7976931348623157E+308</n><nDTO xmlns:b=\"http://schemas.datacontract.org/2004/07/System\"><b:DateTime>9999-12-31T23:59:59.9999999Z</b:DateTime><b:OffsetMinutes>0</b:OffsetMinutes></nDTO><o>NaN</o><obj/><p>-INF</p><q>INF</q><r>0</r><s>1E-45</s><strData i:nil=\"true\"/><t>-3.4028235E+38</t><timeSpan>P10675199DT2H48M5.4775807S</timeSpan><u>3.4028235E+38</u><uri>http://www.microsoft.com/</uri><v>NaN</v><valType i:type=\"PublicDCStruct\"><Data>Data</Data></valType><w>-INF</w><x>INF</x><q:xmlQualifiedName xmlns:q=\"http://schemas.datacontract.org/2004/07/SerializationTestTypes\" xmlns:b=\"http://www.microsoft.com\">b:WCF</q:xmlQualifiedName><y>0</y><z>2147483647</z><z1>-2147483648</z1><z2>0</z2><z3>9223372036854775807</z3><z4>-9223372036854775808</z4><z5/><z6>0</z6><z7>127</z7><z8>-128</z8><z9>0</z9><z91>32767</z91><z92>-32768</z92><z93>abc</z93><z94>0</z94><z95>65535</z95><z96>0</z96><z97>0</z97><z98>4294967295</z98><z99>0</z99><z990>0</z990><z991>18446744073709551615</z991><z992>0</z992></_data2></ObjectContainer>");
+ }
+
+
#endregion
[Fact]
Assert.Equal(0x7FF00000_00000000u, DoubleToUInt64Bits(double.PositiveInfinity));
}
- public static IEnumerable<object[]> ToString_TestData()
+ private static IEnumerable<object[]> ToString_TestData()
{
- yield return new object[] { double.MinValue, "G", null, "-1.79769313486232E+308" };
yield return new object[] { -4567.0, "G", null, "-4567" };
yield return new object[] { -4567.89101, "G", null, "-4567.89101" };
yield return new object[] { 0.0, "G", null, "0" };
yield return new object[] { 4567.0, "G", null, "4567" };
yield return new object[] { 4567.89101, "G", null, "4567.89101" };
- yield return new object[] { double.MaxValue, "G", null, "1.79769313486232E+308" };
- yield return new object[] { double.Epsilon, "G", null, "4.94065645841247E-324" };
yield return new object[] { double.NaN, "G", null, "NaN" };
yield return new object[] { 2468.0, "N", null, "2,468.00" };
yield return new object[] { -2468.0, "N", customNegativeSignGroupSeparatorNegativePattern, "(2*468.00)" };
NumberFormatInfo invariantFormat = NumberFormatInfo.InvariantInfo;
- yield return new object[] { double.Epsilon, "G", invariantFormat, "4.94065645841247E-324" };
yield return new object[] { double.NaN, "G", invariantFormat, "NaN" };
yield return new object[] { double.PositiveInfinity, "G", invariantFormat, "Infinity" };
yield return new object[] { double.NegativeInfinity, "G", invariantFormat, "-Infinity" };
}
+ public static IEnumerable<object[]> ToString_TestData_NetFramework()
+ {
+ foreach (var testData in ToString_TestData())
+ {
+ yield return testData;
+ }
+
+ yield return new object[] { double.MinValue, "G", null, "-1.79769313486232E+308" };
+ yield return new object[] { double.MaxValue, "G", null, "1.79769313486232E+308" };
+
+ yield return new object[] { double.Epsilon, "G", null, "4.94065645841247E-324" };
+
+ NumberFormatInfo invariantFormat = NumberFormatInfo.InvariantInfo;
+ yield return new object[] { double.Epsilon, "G", invariantFormat, "4.94065645841247E-324" };
+ }
+
+ public static IEnumerable<object[]> ToString_TestData_NotNetFramework()
+ {
+ foreach (var testData in ToString_TestData())
+ {
+ yield return testData;
+ }
+
+ yield return new object[] { double.MinValue, "G", null, "-1.7976931348623157E+308" };
+ yield return new object[] { double.MaxValue, "G", null, "1.7976931348623157E+308" };
+
+ yield return new object[] { double.Epsilon, "G", null, "5E-324" };
+
+ NumberFormatInfo invariantFormat = NumberFormatInfo.InvariantInfo;
+ yield return new object[] { double.Epsilon, "G", invariantFormat, "5E-324" };
+ }
+
+ [Fact]
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public static void Test_ToString_NetFramework()
+ {
+ RemoteInvoke(() =>
+ {
+ CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
+
+ foreach (var testdata in ToString_TestData_NetFramework())
+ {
+ ToString((double)testdata[0], (string)testdata[1], (IFormatProvider)testdata[2], (string)testdata[3]);
+ }
+ return SuccessExitCode;
+ }).Dispose();
+ }
+
[Fact]
- public static void Test_ToString()
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public static void Test_ToString_NotNetFramework()
{
RemoteInvoke(() =>
{
CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
- foreach (var testdata in ToString_TestData())
+ foreach (var testdata in ToString_TestData_NotNetFramework())
{
ToString((double)testdata[0], (string)testdata[1], (IFormatProvider)testdata[2], (string)testdata[3]);
}
return SuccessExitCode;
}).Dispose();
}
-
+
private static void ToString(double d, string format, IFormatProvider provider, string expected)
{
bool isDefaultProvider = (provider == null || provider == NumberFormatInfo.CurrentInfo);
{
CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
- foreach (var testdata in ToString_TestData())
+ foreach (var testdata in ToString_TestData_NotNetFramework())
{
double localI = (double)testdata[0];
string localFormat = (string)testdata[1];
Assert.Equal(0x7F800000u, SingleToUInt32Bits(float.PositiveInfinity));
}
- public static IEnumerable<object[]> ToString_TestData()
+ private static IEnumerable<object[]> ToString_TestData()
{
- yield return new object[] { float.MinValue, "G", null, "-3.402823E+38" };
yield return new object[] { -4567.0f, "G", null, "-4567" };
yield return new object[] { -4567.89101f, "G", null, "-4567.891" };
yield return new object[] { 0.0f, "G", null, "0" };
yield return new object[] { 4567.0f, "G", null, "4567" };
yield return new object[] { 4567.89101f, "G", null, "4567.891" };
- yield return new object[] { float.MaxValue, "G", null, "3.402823E+38" };
- yield return new object[] { float.Epsilon, "G", null, "1.401298E-45" };
yield return new object[] { float.NaN, "G", null, "NaN" };
yield return new object[] { 2468.0f, "N", null, "2,468.00" };
yield return new object[] { -2468.0f, "N", customNegativeSignGroupSeparatorNegativePattern, "(2*468.00)" };
NumberFormatInfo invariantFormat = NumberFormatInfo.InvariantInfo;
- yield return new object[] { float.Epsilon, "G", invariantFormat, "1.401298E-45" };
yield return new object[] { float.NaN, "G", invariantFormat, "NaN" };
yield return new object[] { float.PositiveInfinity, "G", invariantFormat, "Infinity" };
yield return new object[] { float.NegativeInfinity, "G", invariantFormat, "-Infinity" };
}
+ public static IEnumerable<object[]> ToString_TestData_NetFramework()
+ {
+ foreach (var testData in ToString_TestData())
+ {
+ yield return testData;
+ }
+
+ yield return new object[] { float.MinValue, "G", null, "-3.402823E+38" };
+ yield return new object[] { float.MaxValue, "G", null, "3.402823E+38" };
+
+ yield return new object[] { float.Epsilon, "G", null, "1.401298E-45" };
+
+ NumberFormatInfo invariantFormat = NumberFormatInfo.InvariantInfo;
+ yield return new object[] { float.Epsilon, "G", invariantFormat, "1.401298E-45" };
+ }
+
+ public static IEnumerable<object[]> ToString_TestData_NotNetFramework()
+ {
+ foreach (var testData in ToString_TestData())
+ {
+ yield return testData;
+ }
+
+ yield return new object[] { float.MinValue, "G", null, "-3.4028235E+38" };
+ yield return new object[] { float.MaxValue, "G", null, "3.4028235E+38" };
+
+ yield return new object[] { float.Epsilon, "G", null, "1E-45" };
+
+ NumberFormatInfo invariantFormat = NumberFormatInfo.InvariantInfo;
+ yield return new object[] { float.Epsilon, "G", invariantFormat, "1E-45" };
+ }
+
+ [Fact]
+ [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+ public static void Test_ToString_NetFramework()
+ {
+ RemoteInvoke(() =>
+ {
+ CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
+
+ foreach (var testdata in ToString_TestData_NetFramework())
+ {
+ ToString((float)testdata[0], (string)testdata[1], (IFormatProvider)testdata[2], (string)testdata[3]);
+ }
+ return SuccessExitCode;
+ }).Dispose();
+ }
+
[Fact]
- public static void Test_ToString()
+ [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+ public static void Test_ToString_NotNetFramework()
{
RemoteInvoke(() =>
{
CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
- foreach (var testdata in ToString_TestData())
+ foreach (var testdata in ToString_TestData_NotNetFramework())
{
ToString((float)testdata[0], (string)testdata[1], (IFormatProvider)testdata[2], (string)testdata[3]);
}
return SuccessExitCode;
}).Dispose();
}
-
+
private static void ToString(float f, string format, IFormatProvider provider, string expected)
{
bool isDefaultProvider = provider == null;
public static void Total_Days_Hours_Minutes_Seconds_Milliseconds(TimeSpan timeSpan, double expectedDays, double expectedHours, double expectedMinutes, double expectedSeconds, double expectedMilliseconds)
{
// Use ToString() to prevent any rounding errors when comparing
- Assert.Equal(expectedDays.ToString(), timeSpan.TotalDays.ToString());
+ Assert.Equal(expectedDays.ToString("G15"), timeSpan.TotalDays.ToString("G15"));
Assert.Equal(expectedHours, timeSpan.TotalHours);
Assert.Equal(expectedMinutes, timeSpan.TotalMinutes);
Assert.Equal(expectedSeconds, timeSpan.TotalSeconds);