public void IncreaseTest() { Numeral numeral = 0U.Church(); Assert.AreEqual(0U + 1U, (numeral = numeral.Increase()).Unchurch()); Assert.AreEqual(1U + 1U, (numeral = numeral.Increase()).Unchurch()); Assert.AreEqual(2U + 1U, (numeral = numeral.Increase()).Unchurch()); Assert.AreEqual(3U + 1U, (numeral = numeral.Increase()).Unchurch()); numeral = 123U.Church(); Assert.AreEqual(123U + 1U, numeral.Increase().Unchurch()); }
internal static void Point(Numeral x, Numeral y) { Tuple <Numeral, Numeral> point1 = ChurchTuple <Numeral, Numeral> .Create(x)(y); Numeral x1 = point1.Item1(); Numeral y1 = point1.Item1(); // Move up. Numeral y2 = y1.Increase(); Tuple <Numeral, Numeral> point2 = ChurchTuple <Numeral, Numeral> .Create(x1)(y2); }