public void PassiveChainTest() { //Nested Adds var add3 = new Add().And(new Add().And(new Add())); Assert.AreEqual(3, add3.Execute(0)); var sub5 = new Sub().And(new Sub().And(new Sub().And(new Sub().And(new Sub())))); Assert.AreEqual(10, sub5.Execute(15)); //Continous adds to Root var sub2 = new Add().And(new Sub()).And(new Sub()).And(new Sub()); Assert.AreEqual(3, sub2.Execute(5)); var add5 = new Add(); for (int i = 0; i < 4; i++) add5.And(new Add()); Assert.AreEqual(5, add5.Execute(0)); }