public void Does_truthy_falsy_conditional_logic_evaluate_correctly(string template, string expected) { //given TemplateEngine ngin = new TemplateEngine(template); ngin.TrimWhitespace = true; int idx = 0; Func <int> GetNextIndex = () => idx++; Action ResetIndex = () => idx = 0; ngin.LambdaRepo.Register(nameof(GetNextIndex), GetNextIndex); ngin.LambdaRepo.Register(nameof(ResetIndex), ResetIndex); bool[] data = new bool[20]; data[0] = ngin.IsTrue(null); //false; data[1] = ngin.IsTrue(1.00F); //true; data[2] = ngin.IsTrue(1U); //true; data[3] = ngin.IsTrue(0.00F); //false; data[4] = ngin.IsTrue(0); //false; data[5] = ngin.IsTrue(string.Empty); //false; data[6] = ngin.IsTrue(new object[0]); //false; data[7] = ngin.IsTrue(new object[1]); //true; data[8] = ngin.IsTrue(true); //true; data[9] = ngin.IsTrue(false); //false; data[10] = ngin.IsTrue('\0'); //false; data[11] = ngin.IsTrue('t'); //true; data[12] = ngin.IsTrue('f'); //true; data[13] = ngin.IsTrue((decimal)1.111); //true; data[14] = ngin.IsTrue((decimal)0.000); //false; data[15] = ngin.IsTrue("\0"); //false; data[16] = ngin.IsTrue("f"); //true; data[17] = ngin.IsTrue("t"); //true; data[18] = ngin.IsTrue("false"); //true; data[19] = ngin.IsTrue("hello"); //true; //when string actual = ngin.Merge(data); //then Assert.Equal(expected, actual); }