public void ToTuple ()
{
#region ToTuple
IEnumerable<object> s = new object[]{1, '2', 3L, "4"};
object tl = s.ToTuple ();
Assert.AreEqual (typeof(Tuple<int, char, long, string>), tl.GetType());
var t = (Tuple<int, char, long, string>) tl;
Assert.AreEqual (1, t.Item1);
Assert.AreEqual ('2', t.Item2);
Assert.AreEqual (3L, t.Item3);
Assert.AreEqual ("4", t.Item4);
#endregion
var a = Tuple.Create (1U, 2L, '\x3', (byte) 4);
Assert.AreEqual (true,
a.Equals (new object[]{1U, 2L, '\x3', (byte) 4}.ToTuple ()));
Assert.AreEqual (a,
a.ToEnumerable ().ToTuple ());
}