public static void Constructor() { TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan> tupleDriverA; //Tuple-1 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MaxValue); tupleDriverA.Ctor(short.MaxValue); //Tuple-2 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue, int.MaxValue); tupleDriverA.Ctor(short.MinValue, int.MaxValue); //Tuple-3 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)0, (int)0, long.MaxValue); tupleDriverA.Ctor((short)0, (int)0, long.MaxValue); //Tuple-4 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)1, (int)1, long.MinValue, "This"); tupleDriverA.Ctor((short)1, (int)1, long.MinValue, "This"); //Tuple-5 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-1), (int)(-1), (long)0, "is", 'A'); tupleDriverA.Ctor((short)(-1), (int)(-1), (long)0, "is", 'A'); //Tuple-6 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10, (int)100, (long)1, "testing", 'Z', Single.MaxValue); tupleDriverA.Ctor((short)10, (int)100, (long)1, "testing", 'Z', Single.MaxValue); //Tuple-7 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-100), (int)(-1000), (long)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); tupleDriverA.Ctor((short)(-100), (int)(-1000), (long)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); object myObj = new object(); //Tuple-10 DateTime now = DateTime.Now; tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); tupleDriverA.Ctor((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); }
public static void IncomparableTypes() { TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, bool, TimeSpan> tupleDriverA; //Tuple-1 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, bool, TimeSpan>((short)10000); tupleDriverA.CompareToThrows(); // This is for code coverage purposes //Tuple-2 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, bool, TimeSpan>((short)10000, (int)1000000); tupleDriverA.CompareToThrows(); //Tuple-3 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, bool, TimeSpan>((short)10000, (int)1000000, (long)10000000); tupleDriverA.CompareToThrows(); //Tuple-4 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, bool, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?"); tupleDriverA.CompareToThrows(); //Tuple-5 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, bool, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0'); tupleDriverA.CompareToThrows(); //Tuple-6 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, bool, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', Single.NaN); tupleDriverA.CompareToThrows(); //Tuple-7 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, bool, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', Single.NaN, Double.NegativeInfinity); tupleDriverA.CompareToThrows(); //Tuple-8, extended tuple tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, bool, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', Single.NaN, Double.NegativeInfinity, DateTime.Now); tupleDriverA.CompareToThrows(); //Tuple-9 and Tuple-10 are not necessary because they use the same code path as Tuple-8 }
public static void ToStringTest() { TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan> tupleDriverA; //Tuple-1 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MaxValue); tupleDriverA.ToString("(" + short.MaxValue + ")"); //Tuple-2 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue, int.MaxValue); tupleDriverA.ToString("(" + short.MinValue + ", " + int.MaxValue + ")"); //Tuple-3 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)0, (int)0, long.MaxValue); tupleDriverA.ToString("(" + ((short)0) + ", " + ((int)0) + ", " + long.MaxValue + ")"); //Tuple-4 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)1, (int)1, long.MinValue, "This"); tupleDriverA.Ctor((short)1, (int)1, long.MinValue, "This"); tupleDriverA.ToString("(" + ((short)1) + ", " + ((int)1) + ", " + long.MinValue + ", This)"); //Tuple-5 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-1), (int)(-1), (long)0, "is", 'A'); tupleDriverA.ToString("(" + ((short)(-1)) + ", " + ((int)(-1)) + ", " + ((long)0) + ", is, A)"); //Tuple-6 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10, (int)100, (long)1, "testing", 'Z', Single.MaxValue); tupleDriverA.ToString("(" + ((short)10) + ", " + ((int)100) + ", " + ((long)1) + ", testing, Z, " + Single.MaxValue + ")"); //Tuple-7 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-100), (int)(-1000), (long)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); tupleDriverA.ToString("(" + ((short)(-100)) + ", " + ((int)(-1000)) + ", " + ((long)(-1)) + ", Tuples, , " + Single.MinValue + ", " + Double.MaxValue + ")"); object myObj = new object(); //Tuple-10 DateTime now = DateTime.Now; tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); // .NET Native bug 438149 - object.ToString in incorrect tupleDriverA.ToString("(" + ((short)10000) + ", " + ((int)1000000) + ", " + ((long)10000000) + ", 2008?7?2?, 0, " + ((Single)0.0001) + ", " + ((Double)0.0000001) + ", " + now + ", (False, System.Object), " + TimeSpan.Zero + ")"); }
public void Equals_GetHashCode(TupleTestDriver <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> other, bool expectEqual, bool expectStructuallyEqual) { if (expectEqual) { Assert.True(Tuple.Equals(other.Tuple)); Assert.Equal(Tuple.GetHashCode(), other.Tuple.GetHashCode()); } else { Assert.False(Tuple.Equals(other.Tuple)); Assert.NotEqual(Tuple.GetHashCode(), other.Tuple.GetHashCode()); } if (expectStructuallyEqual) { var equatable = ((IStructuralEquatable)Tuple); var otherEquatable = ((IStructuralEquatable)other.Tuple); Assert.True(equatable.Equals(other.Tuple, TestEqualityComparer.Instance)); Assert.Equal(equatable.GetHashCode(TestEqualityComparer.Instance), otherEquatable.GetHashCode(TestEqualityComparer.Instance)); } else { var equatable = ((IStructuralEquatable)Tuple); var otherEquatable = ((IStructuralEquatable)other.Tuple); Assert.False(equatable.Equals(other.Tuple, TestEqualityComparer.Instance)); Assert.NotEqual(equatable.GetHashCode(TestEqualityComparer.Instance), otherEquatable.GetHashCode(TestEqualityComparer.Instance)); } Assert.False(Tuple.Equals(null)); Assert.False(((IStructuralEquatable)Tuple).Equals(null)); IStructuralEquatable_Equals_NullComparer_ThrowsNullReferenceException(); IStructuralEquatable_GetHashCode_NullComparer_ThrowsNullReferenceException(); }
public static void IncomparableTypes() { TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Boolean, TimeSpan> tupleDriverA; //Tuple-1 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Boolean, TimeSpan>((Int16)10000); tupleDriverA.TestCompareToThrows(); // This is for code coverage purposes //Tuple-2 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Boolean, TimeSpan>((Int16)10000, (Int32)1000000); tupleDriverA.TestCompareToThrows(); //Tuple-3 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Boolean, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000); tupleDriverA.TestCompareToThrows(); //Tuple-4 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Boolean, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日"); tupleDriverA.TestCompareToThrows(); //Tuple-5 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Boolean, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日", '0'); tupleDriverA.TestCompareToThrows(); //Tuple-6 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Boolean, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日", '0', Single.NaN); tupleDriverA.TestCompareToThrows(); //Tuple-7 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Boolean, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日", '0', Single.NaN, Double.NegativeInfinity); tupleDriverA.TestCompareToThrows(); //Tuple-8, extended tuple tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Boolean, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日", '0', Single.NaN, Double.NegativeInfinity, DateTime.Now); tupleDriverA.TestCompareToThrows(); //Tuple-9 and Tuple-10 are not necesary because they use the same code path as Tuple-8 }
public static void TestToString() { TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan> tupleDriverA; //Tuple-1 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MaxValue); tupleDriverA.TestToString("(" + Int16.MaxValue + ")"); //Tuple-2 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MinValue, Int32.MaxValue); tupleDriverA.TestToString("(" + Int16.MinValue + ", " + Int32.MaxValue + ")"); //Tuple-3 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)0, (Int32)0, Int64.MaxValue); tupleDriverA.TestToString("(" + ((Int16)0) + ", " + ((Int32)0) + ", " + Int64.MaxValue + ")"); //Tuple-4 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)1, (Int32)1, Int64.MinValue, "This"); tupleDriverA.TestConstructor((Int16)1, (Int32)1, Int64.MinValue, "This"); tupleDriverA.TestToString("(" + ((Int16)1) + ", " + ((Int32)1) + ", " + Int64.MinValue + ", This)"); //Tuple-5 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-1), (Int32)(-1), (Int64)0, "is", 'A'); tupleDriverA.TestToString("(" + ((Int16)(-1)) + ", " + ((Int32)(-1)) + ", " + ((Int64)0) + ", is, A)"); //Tuple-6 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10, (Int32)100, (Int64)1, "testing", 'Z', Single.MaxValue); tupleDriverA.TestToString("(" + ((Int16)10) + ", " + ((Int32)100) + ", " + ((Int64)1) + ", testing, Z, " + Single.MaxValue + ")"); //Tuple-7 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-100), (Int32)(-1000), (Int64)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); tupleDriverA.TestToString("(" + ((Int16)(-100)) + ", " + ((Int32)(-1000)) + ", " + ((Int64)(-1)) + ", Tuples, , " + Single.MinValue + ", " + Double.MaxValue + ")"); Object myObj = new Object(); //Tuple-10 DateTime now = DateTime.Now; tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); // .NET Native bug 438149 - object.ToString in incorrect tupleDriverA.TestToString("(" + ((Int16)10000) + ", " + ((Int32)1000000) + ", " + ((Int64)10000000) + ", 2008年7月2日, 0, " + ((Single)0.0001) + ", " + ((Double)0.0000001) + ", " + now + ", (False, System.Object), " + TimeSpan.Zero + ")"); }
public static void TestConstructor() { TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan> tupleDriverA; //Tuple-1 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MaxValue); tupleDriverA.TestConstructor(Int16.MaxValue); //Tuple-2 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MinValue, Int32.MaxValue); tupleDriverA.TestConstructor(Int16.MinValue, Int32.MaxValue); //Tuple-3 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)0, (Int32)0, Int64.MaxValue); tupleDriverA.TestConstructor((Int16)0, (Int32)0, Int64.MaxValue); //Tuple-4 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)1, (Int32)1, Int64.MinValue, "This"); tupleDriverA.TestConstructor((Int16)1, (Int32)1, Int64.MinValue, "This"); //Tuple-5 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-1), (Int32)(-1), (Int64)0, "is", 'A'); tupleDriverA.TestConstructor((Int16)(-1), (Int32)(-1), (Int64)0, "is", 'A'); //Tuple-6 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10, (Int32)100, (Int64)1, "testing", 'Z', Single.MaxValue); tupleDriverA.TestConstructor((Int16)10, (Int32)100, (Int64)1, "testing", 'Z', Single.MaxValue); //Tuple-7 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-100), (Int32)(-1000), (Int64)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); tupleDriverA.TestConstructor((Int16)(-100), (Int32)(-1000), (Int64)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); Object myObj = new Object(); //Tuple-10 DateTime now = DateTime.Now; tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); tupleDriverA.TestConstructor((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); }
public void CompareTo(TupleTestDriver <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> other, int expectedResult, int expectedStructuralResult) { Assert.Equal(expectedResult, ((IComparable)Tuple).CompareTo(other.Tuple)); Assert.Equal(expectedStructuralResult, ((IStructuralComparable)Tuple).CompareTo(other.Tuple, TestComparer.Instance)); Assert.Equal(1, ((IComparable)Tuple).CompareTo(null)); IStructuralComparable_NullComparer_ThrowsNullReferenceException(); }
public static void CompareTo() { TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan> tupleDriverA, tupleDriverB, tupleDriverC; //Tuple-1 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue); tupleDriverA.CompareTo(tupleDriverB, 0, 5); tupleDriverA.CompareTo(tupleDriverC, 65535, 5); //Tuple-2 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue, int.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue, int.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue, int.MinValue); tupleDriverA.CompareTo(tupleDriverB, 0, 5); tupleDriverA.CompareTo(tupleDriverC, 1, 5); //Tuple-3 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)0, (int)0, long.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)0, (int)0, long.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-1), (int)(-1), long.MinValue); tupleDriverA.CompareTo(tupleDriverB, 0, 5); tupleDriverA.CompareTo(tupleDriverC, 1, 5); //Tuple-4 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)1, (int)1, long.MinValue, "This"); tupleDriverB = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)1, (int)1, long.MinValue, "This"); tupleDriverC = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)1, (int)1, long.MinValue, "this"); tupleDriverA.CompareTo(tupleDriverB, 0, 5); tupleDriverA.CompareTo(tupleDriverC, 1, 5); //Tuple-5 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-1), (int)(-1), (long)0, "is", 'A'); tupleDriverB = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-1), (int)(-1), (long)0, "is", 'A'); tupleDriverC = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)0, (int)0, (long)1, "IS", 'a'); tupleDriverA.CompareTo(tupleDriverB, 0, 5); tupleDriverA.CompareTo(tupleDriverC, -1, 5); //Tuple-6 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10, (int)100, (long)1, "testing", 'Z', Single.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10, (int)100, (long)1, "testing", 'Z', Single.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10, (int)100, (long)1, "testing", 'Z', Single.MinValue); tupleDriverA.CompareTo(tupleDriverB, 0, 5); tupleDriverA.CompareTo(tupleDriverC, 1, 5); //Tuple-7 tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-100), (int)(-1000), (long)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-100), (int)(-1000), (long)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-101), (int)(-1001), (long)(-2), "tuples", ' ', Single.MinValue, (Double)0.0); tupleDriverA.CompareTo(tupleDriverB, 0, 5); tupleDriverA.CompareTo(tupleDriverC, 1, 5); object myObj = new object(); //Tuple-10 DateTime now = DateTime.Now; tupleDriverA = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); tupleDriverB = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); tupleDriverC = new TupleTestDriver <short, int, long, string, Char, Single, Double, DateTime, Tuple <bool, object>, TimeSpan>((short)10001, (int)1000001, (long)10000001, "2008?7?3?", '1', (Single)0.0002, (Double)0.0000002, now.AddMilliseconds(1), Tuple.Create(true, myObj), TimeSpan.MaxValue); tupleDriverA.CompareTo(tupleDriverB, 0, 5); tupleDriverA.CompareTo(tupleDriverC, -1, 5); }
public static void TestCompareTo() { TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan> tupleDriverA, tupleDriverB, tupleDriverC; //Tuple-1 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MaxValue); tupleDriverB = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MaxValue); tupleDriverC = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MinValue); tupleDriverA.TestCompareTo(tupleDriverB, 0, 5); tupleDriverA.TestCompareTo(tupleDriverC, 65535, 5); //Tuple-2 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MinValue, Int32.MaxValue); tupleDriverB = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MinValue, Int32.MaxValue); tupleDriverC = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>(Int16.MinValue, Int32.MinValue); tupleDriverA.TestCompareTo(tupleDriverB, 0, 5); tupleDriverA.TestCompareTo(tupleDriverC, 1, 5); //Tuple-3 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)0, (Int32)0, Int64.MaxValue); tupleDriverB = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)0, (Int32)0, Int64.MaxValue); tupleDriverC = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-1), (Int32)(-1), Int64.MinValue); tupleDriverA.TestCompareTo(tupleDriverB, 0, 5); tupleDriverA.TestCompareTo(tupleDriverC, 1, 5); //Tuple-4 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)1, (Int32)1, Int64.MinValue, "This"); tupleDriverB = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)1, (Int32)1, Int64.MinValue, "This"); tupleDriverC = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)1, (Int32)1, Int64.MinValue, "this"); tupleDriverA.TestCompareTo(tupleDriverB, 0, 5); tupleDriverA.TestCompareTo(tupleDriverC, 1, 5); //Tuple-5 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-1), (Int32)(-1), (Int64)0, "is", 'A'); tupleDriverB = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-1), (Int32)(-1), (Int64)0, "is", 'A'); tupleDriverC = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)0, (Int32)0, (Int64)1, "IS", 'a'); tupleDriverA.TestCompareTo(tupleDriverB, 0, 5); tupleDriverA.TestCompareTo(tupleDriverC, -1, 5); //Tuple-6 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10, (Int32)100, (Int64)1, "testing", 'Z', Single.MaxValue); tupleDriverB = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10, (Int32)100, (Int64)1, "testing", 'Z', Single.MaxValue); tupleDriverC = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10, (Int32)100, (Int64)1, "testing", 'Z', Single.MinValue); tupleDriverA.TestCompareTo(tupleDriverB, 0, 5); tupleDriverA.TestCompareTo(tupleDriverC, 1, 5); //Tuple-7 tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-100), (Int32)(-1000), (Int64)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); tupleDriverB = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-100), (Int32)(-1000), (Int64)(-1), "Tuples", ' ', Single.MinValue, Double.MaxValue); tupleDriverC = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)(-101), (Int32)(-1001), (Int64)(-2), "tuples", ' ', Single.MinValue, (Double)0.0); tupleDriverA.TestCompareTo(tupleDriverB, 0, 5); tupleDriverA.TestCompareTo(tupleDriverC, 1, 5); Object myObj = new Object(); //Tuple-10 DateTime now = DateTime.Now; tupleDriverA = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); tupleDriverB = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10000, (Int32)1000000, (Int64)10000000, "2008年7月2日", '0', (Single)0.0001, (Double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); tupleDriverC = new TupleTestDriver <Int16, Int32, Int64, String, Char, Single, Double, DateTime, Tuple <Boolean, Object>, TimeSpan>((Int16)10001, (Int32)1000001, (Int64)10000001, "2008年7月3日", '1', (Single)0.0002, (Double)0.0000002, now.AddMilliseconds(1), Tuple.Create(true, myObj), TimeSpan.MaxValue); tupleDriverA.TestCompareTo(tupleDriverB, 0, 5); tupleDriverA.TestCompareTo(tupleDriverC, -1, 5); }
public void TestEquals_GetHashCode(TupleTestDriver <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> other, bool expectEqual, bool expectStructuallyEqual) { if (expectEqual) { Assert.True(Tuple.Equals(other.Tuple)); Assert.Equal(Tuple.GetHashCode(), other.Tuple.GetHashCode()); } if (expectStructuallyEqual) { var equatable = ((IStructuralEquatable)Tuple); var otherEquatable = ((IStructuralEquatable)other.Tuple); Assert.True(equatable.Equals(other.Tuple, TestEqualityComparer.Instance)); Assert.Equal(equatable.GetHashCode(TestEqualityComparer.Instance), otherEquatable.GetHashCode(TestEqualityComparer.Instance)); } Assert.False(Tuple.Equals(null)); }
public static void Equals_GetHashCode() { TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan> tupleDriverA, tupleDriverB, tupleDriverC, tupleDriverD; //Tuple-1 tupleDriverA = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>(short.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>(short.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue); tupleDriverD = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>(short.MaxValue, int.MaxValue); tupleDriverA.Equals_GetHashCode(tupleDriverB, true, true); tupleDriverA.Equals_GetHashCode(tupleDriverC, false, false); tupleDriverA.Equals_GetHashCode(tupleDriverD, false, false); //Tuple-2 tupleDriverA = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue, int.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue, int.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>(short.MinValue, int.MinValue); tupleDriverD = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-1), (int)(-1), long.MinValue); tupleDriverA.Equals_GetHashCode(tupleDriverB, true, true); tupleDriverA.Equals_GetHashCode(tupleDriverC, false, false); tupleDriverA.Equals_GetHashCode(tupleDriverD, false, false); //Tuple-3 tupleDriverA = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)0, (int)0, long.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)0, (int)0, long.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-1), (int)(-1), long.MinValue); tupleDriverD = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)1, (int)1, long.MinValue, "this"); tupleDriverA.Equals_GetHashCode(tupleDriverB, true, true); tupleDriverA.Equals_GetHashCode(tupleDriverC, false, false); tupleDriverA.Equals_GetHashCode(tupleDriverD, false, false); //Tuple-4 tupleDriverA = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)1, (int)1, long.MinValue, "This"); tupleDriverB = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)1, (int)1, long.MinValue, "This"); tupleDriverC = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)1, (int)1, long.MinValue, "this"); tupleDriverD = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)0, (int)0, (long)1, "IS", 'a'); tupleDriverA.Equals_GetHashCode(tupleDriverB, true, true); tupleDriverA.Equals_GetHashCode(tupleDriverC, false, false); tupleDriverA.Equals_GetHashCode(tupleDriverD, false, false); //Tuple-5 tupleDriverA = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-1), (int)(-1), (long)0, "is", 'A'); tupleDriverB = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-1), (int)(-1), (long)0, "is", 'A'); tupleDriverC = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)0, (int)0, (long)1, "IS", 'a'); tupleDriverD = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)10, (int)100, (long)1, "testing", 'Z', float.MinValue); tupleDriverA.Equals_GetHashCode(tupleDriverB, true, true); tupleDriverA.Equals_GetHashCode(tupleDriverC, false, false); tupleDriverA.Equals_GetHashCode(tupleDriverD, false, false); //Tuple-6 tupleDriverA = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)10, (int)100, (long)1, "testing", 'Z', float.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)10, (int)100, (long)1, "testing", 'Z', float.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)10, (int)100, (long)1, "testing", 'Z', float.MinValue); tupleDriverD = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-101), (int)(-1001), (long)(-2), "tuples", ' ', float.MinValue, (double)0.0); tupleDriverA.Equals_GetHashCode(tupleDriverB, true, true); tupleDriverA.Equals_GetHashCode(tupleDriverC, false, false); tupleDriverA.Equals_GetHashCode(tupleDriverD, false, false); //Tuple-7 tupleDriverA = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-100), (int)(-1000), (long)(-1), "Tuples", ' ', float.MinValue, double.MaxValue); tupleDriverB = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-100), (int)(-1000), (long)(-1), "Tuples", ' ', float.MinValue, double.MaxValue); tupleDriverC = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)(-101), (int)(-1001), (long)(-2), "tuples", ' ', float.MinValue, (double)0.0); tupleDriverD = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)10001, (int)1000001, (long)10000001, "2008?7?3?", '1', (float)0.0002, (double)0.0000002, DateTime.Now.AddMilliseconds(1)); tupleDriverA.Equals_GetHashCode(tupleDriverB, true, true); tupleDriverA.Equals_GetHashCode(tupleDriverC, false, false); tupleDriverA.Equals_GetHashCode(tupleDriverD, false, false); object myObj = new object(); //Tuple-10 DateTime now = DateTime.Now; tupleDriverA = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', (float)0.0001, (double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); tupleDriverB = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)10000, (int)1000000, (long)10000000, "2008?7?2?", '0', (float)0.0001, (double)0.0000001, now, Tuple.Create(false, myObj), TimeSpan.Zero); tupleDriverC = new TupleTestDriver <short, int, long, string, char, float, double, DateTime, Tuple <bool, object>, TimeSpan>((short)10001, (int)1000001, (long)10000001, "2008?7?3?", '1', (float)0.0002, (double)0.0000002, now.AddMilliseconds(1), Tuple.Create(true, myObj), TimeSpan.MaxValue); tupleDriverA.Equals_GetHashCode(tupleDriverB, true, true); tupleDriverA.Equals_GetHashCode(tupleDriverC, false, false); }
public void TestCompareTo(TupleTestDriver <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> other, int expectedResult, int expectedStructuralResult) { Assert.AreEqual(expectedResult, ((IComparable)Tuple).CompareTo(other.Tuple)); Assert.AreEqual(expectedStructuralResult, ((IStructuralComparable)Tuple).CompareTo(other.Tuple, TestComparer.Instance)); Assert.AreEqual(1, ((IComparable)Tuple).CompareTo(null)); }