summaryrefslogtreecommitdiff
path: root/tests/src/readytorun/generics.cs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/readytorun/generics.cs')
-rw-r--r--tests/src/readytorun/generics.cs92
1 files changed, 52 insertions, 40 deletions
diff --git a/tests/src/readytorun/generics.cs b/tests/src/readytorun/generics.cs
index 8bd61b8d17..4c41756305 100644
--- a/tests/src/readytorun/generics.cs
+++ b/tests/src/readytorun/generics.cs
@@ -5,6 +5,7 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
@@ -34,46 +35,57 @@ class Program
static void RunTest1()
{
- DateTime dt = new DateTime(1776, 7, 4);
- string dtString = dt.ToString();
- Assert.AreEqual(new GenClass1c<DateTime>(dt).ToStringEx(7), dtString + " 7");
- Assert.AreEqual(new GenClass1c<int>(1).ToStringEx(7), "1 7");
- Assert.AreEqual(new GenClass1c<long>(2).ToStringEx(7), "2 7");
- Assert.AreEqual(new GenClass1c<float>(3.14f).ToStringEx(7), "3.14 7");
- Assert.AreEqual(new GenClass1c<double>(4.13).ToStringEx(7), "4.13 7");
- Assert.AreEqual(new GenClass1c<int?>(9).ToString(), "9");
-
- Assert.AreEqual(new GenClass2<DateTime, double>(dt, 3.1416).ToString(), dtString + " 3.1416");
- Assert.AreEqual(new GenClass2<DateTime, double>(dt, 3.1416).ToStringEx(7, 8), dtString + " 3.1416 7 8");
- Assert.AreEqual(new GenClass2<object, string>(new object(), "3.1416").ToString(), "System.Object 3.1416");
- Assert.AreEqual(new GenClass2<object, string>(new object(), "3.1416").ToStringEx(7L, 8L), "System.Object 3.1416 7 8");
- Assert.AreEqual(GetString(7.0, 8.0), "7 8");
-
- var gen1a = new GenClass1a<object>();
- Assert.AreEqual(gen1a.CreateGenClass1b(), "GenClass1b`1[System.Object]");
- Assert.AreEqual(gen1a.CreateGenClass1bArray(), "GenClass1b`1[System.Object][]");
-
- var gen1aInt = new GenClass1a<int>();
- var gen1bInt = new GenClass1b<int>();
- var gen1bLong = new GenClass1b<long>();
- Assert.AreEqual(gen1bInt.IsGenClass1a(gen1aInt).ToString(), "True");
- Assert.AreEqual(gen1bLong.IsGenClass1a(gen1aInt).ToString(), "False");
- Assert.AreEqual(gen1bInt.AsGenClass1a(gen1aInt)?.ToString() ?? "null", gen1aInt.ToString());
- Assert.AreEqual(gen1bLong.AsGenClass1a(gen1aInt)?.ToString() ?? "null", "null");
-
- var gen1aString = new GenClass1a<string>();
- var gen1b = new GenClass1b<string>();
- Assert.AreEqual(gen1b.IsGenClass1a(gen1aString).ToString(), "True");
- Assert.AreEqual(gen1b.AsGenClass1a(gen1aString)?.ToString() ?? "null", gen1aString.ToString());
- Assert.AreEqual(GenClass1a<string>.CallVirtual(gen1b), "GenClass1b`1[System.String].VirtualMethod");
- Assert.AreEqual(GenClass1a<string>.CallInterface(gen1b), "GenClass1b`1[System.String].InterfaceMethod1");
- Assert.AreEqual(GenClass1a<string>.CallInterface(gen1b, "Test").ToString(), "GenClass1b`1[System.String]");
-
- NormalClass n = new NormalClass();
- Assert.AreEqual(CallGenVirtMethod<int>(n).ToString(), "GenClass1a`1[System.Int32]");
- Assert.AreEqual(CallGenVirtMethod<int>(n, 42).ToString(), "System.Int32[]");
- Assert.AreEqual(CallGenVirtMethod<string>(n).ToString(), "GenClass1a`1[System.String]");
- Assert.AreEqual(CallGenVirtMethod<string>(n, "forty-two").ToString(), "System.String[]");
+ var originalCultureInfo = CultureInfo.CurrentCulture;
+
+ try
+ {
+ CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
+
+ DateTime dt = new DateTime(1776, 7, 4);
+ string dtString = dt.ToString();
+ Assert.AreEqual(new GenClass1c<DateTime>(dt).ToStringEx(7), dtString + " 7");
+ Assert.AreEqual(new GenClass1c<int>(1).ToStringEx(7), "1 7");
+ Assert.AreEqual(new GenClass1c<long>(2).ToStringEx(7), "2 7");
+ Assert.AreEqual(new GenClass1c<float>(3.14f).ToStringEx(7), "3.14 7");
+ Assert.AreEqual(new GenClass1c<double>(4.13).ToStringEx(7), "4.13 7");
+ Assert.AreEqual(new GenClass1c<int?>(9).ToString(), "9");
+
+ Assert.AreEqual(new GenClass2<DateTime, double>(dt, 3.1416).ToString(), dtString + " 3.1416");
+ Assert.AreEqual(new GenClass2<DateTime, double>(dt, 3.1416).ToStringEx(7, 8), dtString + " 3.1416 7 8");
+ Assert.AreEqual(new GenClass2<object, string>(new object(), "3.1416").ToString(), "System.Object 3.1416");
+ Assert.AreEqual(new GenClass2<object, string>(new object(), "3.1416").ToStringEx(7L, 8L), "System.Object 3.1416 7 8");
+ Assert.AreEqual(GetString(7.0, 8.0), "7 8");
+
+ var gen1a = new GenClass1a<object>();
+ Assert.AreEqual(gen1a.CreateGenClass1b(), "GenClass1b`1[System.Object]");
+ Assert.AreEqual(gen1a.CreateGenClass1bArray(), "GenClass1b`1[System.Object][]");
+
+ var gen1aInt = new GenClass1a<int>();
+ var gen1bInt = new GenClass1b<int>();
+ var gen1bLong = new GenClass1b<long>();
+ Assert.AreEqual(gen1bInt.IsGenClass1a(gen1aInt).ToString(), "True");
+ Assert.AreEqual(gen1bLong.IsGenClass1a(gen1aInt).ToString(), "False");
+ Assert.AreEqual(gen1bInt.AsGenClass1a(gen1aInt)?.ToString() ?? "null", gen1aInt.ToString());
+ Assert.AreEqual(gen1bLong.AsGenClass1a(gen1aInt)?.ToString() ?? "null", "null");
+
+ var gen1aString = new GenClass1a<string>();
+ var gen1b = new GenClass1b<string>();
+ Assert.AreEqual(gen1b.IsGenClass1a(gen1aString).ToString(), "True");
+ Assert.AreEqual(gen1b.AsGenClass1a(gen1aString)?.ToString() ?? "null", gen1aString.ToString());
+ Assert.AreEqual(GenClass1a<string>.CallVirtual(gen1b), "GenClass1b`1[System.String].VirtualMethod");
+ Assert.AreEqual(GenClass1a<string>.CallInterface(gen1b), "GenClass1b`1[System.String].InterfaceMethod1");
+ Assert.AreEqual(GenClass1a<string>.CallInterface(gen1b, "Test").ToString(), "GenClass1b`1[System.String]");
+
+ NormalClass n = new NormalClass();
+ Assert.AreEqual(CallGenVirtMethod<int>(n).ToString(), "GenClass1a`1[System.Int32]");
+ Assert.AreEqual(CallGenVirtMethod<int>(n, 42).ToString(), "System.Int32[]");
+ Assert.AreEqual(CallGenVirtMethod<string>(n).ToString(), "GenClass1a`1[System.String]");
+ Assert.AreEqual(CallGenVirtMethod<string>(n, "forty-two").ToString(), "System.String[]");
+ }
+ finally
+ {
+ CultureInfo.CurrentCulture = originalCultureInfo;
+ }
}
static void RunTest2()