Search in sources :

Example 1 with If

use of net.taken.redsnake.tree.statements.If in project redsnake by Taken0711.

the class IfTest method createIfWithAssignments.

private static If createIfWithAssignments(String variableName, boolean condition, int trueValue, int falseValue) {
    Variable var = mockVariable(variableName);
    Expression cond = mockExpression(new RedsBoolean(condition));
    StatementList thenBody = new StatementList(ImmutableList.of(new Assignment(mockVariable(variableName), mockExpression(trueValue))));
    StatementList elseBody = new StatementList(ImmutableList.of(new Assignment(mockVariable(variableName), mockExpression(falseValue))));
    return new If(cond, thenBody, elseBody);
}
Also used : Assignment(net.taken.redsnake.tree.statements.expressions.Assignment) Variable(net.taken.redsnake.tree.Variable) Expression(net.taken.redsnake.tree.statements.expressions.Expression) RedsBoolean(net.taken.redsnake.lang.RedsBoolean) StatementList(net.taken.redsnake.tree.statements.StatementList) If(net.taken.redsnake.tree.statements.If)

Example 2 with If

use of net.taken.redsnake.tree.statements.If in project redsnake by Taken0711.

the class IfTest method shouldNotExecuteElseBlockWhenExecutingIfWithFalseAndElseClause.

@Test
void shouldNotExecuteElseBlockWhenExecutingIfWithFalseAndElseClause() {
    If anIf = createIfWithAssignments("a", false, 1, 2);
    env.putVariable("a", new RedsInteger(0));
    anIf.execute(env);
    assertEquals(new RedsInteger(2), env.getVariable("a"));
}
Also used : RedsInteger(net.taken.redsnake.lang.RedsInteger) If(net.taken.redsnake.tree.statements.If) Test(org.junit.jupiter.api.Test)

Example 3 with If

use of net.taken.redsnake.tree.statements.If in project redsnake by Taken0711.

the class IfTest method shouldNotExecuteThenBlockWhenExecutingIfWithFalseAndNoElseClause.

@Test
void shouldNotExecuteThenBlockWhenExecutingIfWithFalseAndNoElseClause() {
    If anIf = createIfWithAssignments("a", false, 1);
    env.putVariable("a", new RedsInteger(0));
    anIf.execute(env);
    assertEquals(new RedsInteger(0), env.getVariable("a"));
}
Also used : RedsInteger(net.taken.redsnake.lang.RedsInteger) If(net.taken.redsnake.tree.statements.If) Test(org.junit.jupiter.api.Test)

Example 4 with If

use of net.taken.redsnake.tree.statements.If in project redsnake by Taken0711.

the class IfTest method shouldExecuteTheGoodBlockWhenExecutingIfWithTrueAndElseClause.

@Test
void shouldExecuteTheGoodBlockWhenExecutingIfWithTrueAndElseClause() {
    If anIf = createIfWithAssignments("a", true, 1, 2);
    env.putVariable("a", new RedsInteger(0));
    anIf.execute(env);
    assertEquals(new RedsInteger(1), env.getVariable("a"));
}
Also used : RedsInteger(net.taken.redsnake.lang.RedsInteger) If(net.taken.redsnake.tree.statements.If) Test(org.junit.jupiter.api.Test)

Aggregations

If (net.taken.redsnake.tree.statements.If)4 RedsInteger (net.taken.redsnake.lang.RedsInteger)3 Test (org.junit.jupiter.api.Test)3 RedsBoolean (net.taken.redsnake.lang.RedsBoolean)1 Variable (net.taken.redsnake.tree.Variable)1 StatementList (net.taken.redsnake.tree.statements.StatementList)1 Assignment (net.taken.redsnake.tree.statements.expressions.Assignment)1 Expression (net.taken.redsnake.tree.statements.expressions.Expression)1