public void ItemOnThreeTuple()
 {
     var t = new Tuple<int, int, int>(-1, -2, -3);
       Assert.AreEqual(t.Item1, t.Item(0));
       Assert.AreEqual(t.Item2, t.Item(1));
       Assert.AreEqual(t.Item3, t.Item(2));
 }
Exemple #2
0
        public void ItemOnTwoTuple()
        {
            var t = new Tuple <int, int>(-1, -2);

            Assert.AreEqual(t.Item1, t.Item(0));
            Assert.AreEqual(t.Item2, t.Item(1));
        }
Exemple #3
0
        public void ItemOnThreeTuple()
        {
            var t = new Tuple <int, int, int>(-1, -2, -3);

            Assert.AreEqual(t.Item1, t.Item(0));
            Assert.AreEqual(t.Item2, t.Item(1));
            Assert.AreEqual(t.Item3, t.Item(2));
        }
 public void ItemOnFourTuple()
 {
     var t = new Tuple<int, int, int, int>(-1, -2, -3, -4);
       Assert.AreEqual(t.Item1, t.Item(0));
       Assert.AreEqual(t.Item2, t.Item(1));
       Assert.AreEqual(t.Item3, t.Item(2));
       Assert.AreEqual(t.Item4, t.Item(3));
 }
Exemple #5
0
        public void ItemOnFourTuple()
        {
            var t = new Tuple <int, int, int, int>(-1, -2, -3, -4);

            Assert.AreEqual(t.Item1, t.Item(0));
            Assert.AreEqual(t.Item2, t.Item(1));
            Assert.AreEqual(t.Item3, t.Item(2));
            Assert.AreEqual(t.Item4, t.Item(3));
        }
Exemple #6
0
 public static IEnumerable <object> Where <T1, T2, T3, T4>(this Tuple <T1, T2, T3, T4> value, Func <object, bool> func)
 {
     for (int i = 0; i < value.Length(); i++)
     {
         if (func(value.Item(i)))
         {
             yield return(value.Item(i));
         }
     }
 }
Exemple #7
0
 public static IEnumerable AsEnumerable <T1, T2, T3, T4, T5, T6, T7>(this Tuple <T1, T2, T3, T4, T5, T6, T7> value)
 {
     for (int i = 0; i < value.Length(); i++)
     {
         yield return(value.Item(i));
     }
 }
Exemple #8
0
    //REMARK: AsEnumerable seems to be required for C# because C# demands instance an Instance Method for MoveNext and a Property for Current.
    //VB.NET allows the Use of an extension Method for MoveNext and and Extension Method for Current.
    //And since we implemented AsEnumerable with yield we loose the ability to for each over tuples in VB.NET withouth AsEnumerable too;(
    //TODO: decide whether to bring for each withouth AsEnumerable  back in VB.NET.

    public static IEnumerable AsEnumerable <T>(this Tuple <T> value)
    {
        for (int i = 0; i < value.Length(); i++)
        {
            yield return(value.Item(i));
        }
    }
Exemple #9
0
    public static IEnumerable <TResult> Select <T, TResult>(this Tuple <T> value, Func <object, TResult> func)
    {
        int i = -1;

        while (++i < value.Length())
        {
            yield return(func(value.Item(i)));
        }
    }
Exemple #10
0
    public static IEnumerable <TResult> Select <T1, T2, T3, T4, T5, T6, T7, TResult>(this Tuple <T1, T2, T3, T4, T5, T6, T7> value,
                                                                                     Func <object, int, TResult> func)
    {
        int i = -1;

        while (++i < value.Length())
        {
            yield return(func(value.Item(i), i));
        }
    }
 public void ItemOnSevenTuple()
 {
     var t = new Tuple<int, int, int, int, int, int, int>(-1, -2, -3, -4, -5, -6, -7);
       Assert.AreEqual(t.Item1, t.Item(0));
       Assert.AreEqual(t.Item2, t.Item(1));
       Assert.AreEqual(t.Item3, t.Item(2));
       Assert.AreEqual(t.Item4, t.Item(3));
       Assert.AreEqual(t.Item5, t.Item(4));
       Assert.AreEqual(t.Item6, t.Item(5));
       Assert.AreEqual(t.Item7, t.Item(6));
 }
Exemple #12
0
        public void ItemOnSevenTuple()
        {
            var t = new Tuple <int, int, int, int, int, int, int>(-1, -2, -3, -4, -5, -6, -7);

            Assert.AreEqual(t.Item1, t.Item(0));
            Assert.AreEqual(t.Item2, t.Item(1));
            Assert.AreEqual(t.Item3, t.Item(2));
            Assert.AreEqual(t.Item4, t.Item(3));
            Assert.AreEqual(t.Item5, t.Item(4));
            Assert.AreEqual(t.Item6, t.Item(5));
            Assert.AreEqual(t.Item7, t.Item(6));
        }
Exemple #13
0
    public static int Min <T1, T2, T3, T4, T5, T6>(this Tuple <T1, T2, T3, T4, T5, T6> value, Func <object, int> func)
    {
        Contract.Requires <ArgumentNullException>(value != null);
        Contract.Requires <ArgumentNullException>(func != null);

        int min = int.MaxValue;
        int i   = value.Count();

        while (0 < i)
        {
            i--;
            object v      = value.Item(i);
            int    fValue = func(v);
            min = Math.Min(min, fValue);
        }
        return(min);
    }
Exemple #14
0
    public static double?Max <T1, T2, T3, T4, T5>(this Tuple <T1, T2, T3, T4, T5> value, Func <object, double?> func)
    {
        Contract.Requires <ArgumentNullException>(value != null);
        Contract.Requires <ArgumentNullException>(func != null);

        double?max = double.MinValue;
        int    i   = value.Count();

        while (0 < i)
        {
            i--;
            object v      = value.Item(i);
            double?fValue = func(v);
            if (fValue.HasValue)
            {
                max = Math.Max(max.Value, fValue.Value);
            }
        }
        return(max);
    }
 public void ItemOnOneTuple()
 {
     var t = new Tuple<int>(-1);
       Assert.AreEqual(t.Item1, t.Item(0));
 }
 public void ItemOnTwoTuple()
 {
     var t = new Tuple<int, int>(-1, -2);
       Assert.AreEqual(t.Item1, t.Item(0));
       Assert.AreEqual(t.Item2, t.Item(1));
 }
Exemple #17
0
        public void ItemOnOneTuple()
        {
            var t = new Tuple <int>(-1);

            Assert.AreEqual(t.Item1, t.Item(0));
        }