public void NumeralTests() { Assert.AreEqual(0U, SkiCalculus.UnchurchNumeral(SkiCalculus.Zero)); Assert.AreEqual(1U, SkiCalculus.UnchurchNumeral(SkiCalculus.One)); Assert.AreEqual(2U, SkiCalculus.UnchurchNumeral(SkiCalculus.Two)); Assert.AreEqual(3U, SkiCalculus.UnchurchNumeral(SkiCalculus.Three)); Assert.AreEqual(4U, SkiCalculus.UnchurchNumeral(SkiCalculus.Increase(SkiCalculus.Three))); }
public void BooleanTests() { Func <int, Func <int, int> > t1 = a => b => a + b; int f1 = 1; Assert.AreEqual(ChurchBoolean.True(t1)(f1), SkiCalculus.True(t1)(f1)); Assert.AreEqual(ChurchBoolean.False(t1)(f1), SkiCalculus.False(t1)(f1)); Func <int, int> t2 = a => a + 1; int f2 = 2; Assert.AreEqual(ChurchBoolean.True(t2)(f2), SkiCalculus.True(t2)(f2)); Assert.AreEqual(ChurchBoolean.False(t2)(f2), SkiCalculus.False(t2)(f2)); }