public void AggregateReverse ()
{
IEnumerable<int> s = new []{1, 2, 3, 4, 5};
Assert.AreEqual (-5, s.AggregateReverse ((a,b) => a - b));
Assert.AreEqual ("54321",
s.AggregateReverse (new StringBuilder (), (a,b) => a.Append (b)).ToString ());
Assert.AreEqual (1,
new int[]{}.AggregateReverse (1, (a,b) => a+b));
Assert.AreEqual ("54321",
s.AggregateReverse (new StringBuilder (), (a,b) => a.Append (b), a => a.ToString ()));
Assert.AreEqual (1,
new int[]{}.AggregateReverse (1, (a,b) => a+b, x => x));
}