Esempio n. 1
0
        public void Tupled_AndThen_Play()
        {
            Func <int, int, int> adder = (a, b) => a + b;

            var fn1 =
                new Func <int, int, int>(Adder.Add)
                .Tupled()
                .AndThen((x) => x * 10);

            var fn2 = adder.Tupled().AndThen((x) => x * 10);

            Assert.Equal(150, fn1((5, 10)));
            Assert.Equal(150, fn2((10, 5)));
        }
Esempio n. 2
0
 public void TestTupled()
 {
     var f2 = new Func<int, int, int>((i1, i2) => i1 + i2);
     Assert.That(f2.Tupled().Untupled()(1, 1), Is.EqualTo(2));
     Assert.That(Func.Untuple(Func.Tuple(f2))(1, 1), Is.EqualTo(2));
     var f3 = new Func<int, int, int, int>((i1, i2, i3) => i1 + i2 + i3);
     Assert.That(f3.Tupled().Untupled()(1, 1, 1), Is.EqualTo(3));
     Assert.That(Func.Untuple(Func.Tuple(f3))(1, 1, 1), Is.EqualTo(3));
     var f4 = new Func<int, int, int, int, int>((i1, i2, i3, i4) => i1 + i2 + i3 + i4);
     Assert.That(f4.Tupled().Untupled()(1, 1, 1, 1), Is.EqualTo(4));
     Assert.That(Func.Untuple(Func.Tuple(f4))(1, 1, 1, 1), Is.EqualTo(4));
     var f5 = new Func<int, int, int, int, int, int>((i1, i2, i3, i4, i5) => i1 + i2 + i3 + i4 + i5);
     Assert.That(f5.Tupled().Untupled()(1, 1, 1, 1, 1), Is.EqualTo(5));
     Assert.That(Func.Untuple(Func.Tuple(f5))(1, 1, 1, 1, 1), Is.EqualTo(5));
     var f6 = new Func<int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6) => i1 + i2 + i3 + i4 + i5 + i6);
     Assert.That(f6.Tupled().Untupled()(1, 1, 1, 1, 1, 1), Is.EqualTo(6));
     Assert.That(Func.Untuple(Func.Tuple(f6))(1, 1, 1, 1, 1, 1), Is.EqualTo(6));
     var f7 = new Func<int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7) => i1 + i2 + i3 + i4 + i5 + i6 + i7);
     Assert.That(f7.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1), Is.EqualTo(7));
     Assert.That(Func.Untuple(Func.Tuple(f7))(1, 1, 1, 1, 1, 1, 1), Is.EqualTo(7));
     var f8 = new Func<int, int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7, i8) => i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8);
     Assert.That(f8.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(8));
     Assert.That(Func.Untuple(Func.Tuple(f8))(1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(8));
     var f9 = new Func<int, int, int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7, i8, i9) => i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9);
     Assert.That(f9.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(9));
     Assert.That(Func.Untuple(Func.Tuple(f9))(1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(9));
     var f10 = new Func<int, int, int, int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) => i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10);
     Assert.That(f10.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(10));
     Assert.That(Func.Untuple(Func.Tuple(f10))(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(10));
     var f11 = new Func<int, int, int, int, int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) => i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11);
     Assert.That(f11.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(11));
     Assert.That(Func.Untuple(Func.Tuple(f11))(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(11));
     var f12 = new Func<int, int, int, int, int, int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12) => i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12);
     Assert.That(f12.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(12));
     Assert.That(Func.Untuple(Func.Tuple(f12))(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(12));
     var f13 = new Func<int, int, int, int, int, int, int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13) => i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12 + i13);
     Assert.That(f13.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(13));
     Assert.That(Func.Untuple(Func.Tuple(f13))(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(13));
     var f14 = new Func<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14) => i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12 + i13 + i14);
     Assert.That(f14.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(14));
     Assert.That(Func.Untuple(Func.Tuple(f14))(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(14));
     var f15 = new Func<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15) => i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12 + i13 + i14 + i15);
     Assert.That(f15.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(15));
     Assert.That(Func.Untuple(Func.Tuple(f15))(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(15));
     var f16 = new Func<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int>((i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16) => i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12 + i13 + i14 + i15 + i16);
     Assert.That(f16.Tupled().Untupled()(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(16));
     Assert.That(Func.Untuple(Func.Tuple(f16))(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Is.EqualTo(16));
 }