public void ForLoop_WithNullStep_ThrowsArguementNullException() { var i = new WriteableExpressionVariable(0); Expression variable = i.expression; Expression from = Expression.Constant(0); Expression to = Expression.Constant(2); Expression step = null; var forLoop = new ForLoop(variable, from, to, step); }
public void IsOver_AtStart_IsFalse() { var i = new WriteableExpressionVariable(0); Expression variable = i.expression; Expression from = Expression.Constant(0); Expression to = Expression.Constant(2); var forLoop = new ForLoop(variable, from, to); Assert.IsFalse(forLoop.IsOver); }
public void ForLoop_WithoutStep_SetsStepTo1() { var i = new WriteableExpressionVariable(0); Expression variable = i.expression; Expression from = Expression.Constant(0); Expression to = Expression.Constant(2); var forLoop = new ForLoop(variable, from, to); var actual = (forLoop.Step as ConstantExpression).Value; Assert.AreEqual(1, actual); }
public void TakeStep_WhenCalled_ChangesVariableValue() { var i = new WriteableExpressionVariable(0); Expression variable = i.expression; Expression from = Expression.Constant(0); Expression to = Expression.Constant(2); var forLoop = new ForLoop(variable, from, to); var notExpected = i.value; forLoop.TakeStep(); var actual = i.value; Assert.AreNotEqual(notExpected, actual); }
public void IsOver_AtEnd_IsTrue() { var i = new WriteableExpressionVariable(0); Expression variable = i.expression; Expression from = Expression.Constant(0); Expression to = Expression.Constant(2); var forLoop = new ForLoop(variable, from, to); forLoop.TakeStep(); forLoop.TakeStep(); forLoop.TakeStep(); Assert.IsTrue(forLoop.IsOver); }