Search in sources :

Example 21 with RedsInteger

use of net.taken.redsnake.lang.RedsInteger in project redsnake by Taken0711.

the class ArithmeticBinaryExpressionTest method shouldReturnCorrectResultWhenExecuteBinaryExprDiv.

@Test
void shouldReturnCorrectResultWhenExecuteBinaryExprDiv() {
    ArithmeticBinaryExpression abe = createBinaryExpression(DIVIDE, 4, 2);
    assertEquals(new RedsInteger(2), abe.execute(env));
}
Also used : RedsInteger(net.taken.redsnake.lang.RedsInteger) Test(org.junit.jupiter.api.Test)

Example 22 with RedsInteger

use of net.taken.redsnake.lang.RedsInteger in project redsnake by Taken0711.

the class ArithmeticBinaryExpressionTest method shouldPrioritizePowerOverUnaryMinus.

@Test
void shouldPrioritizePowerOverUnaryMinus() {
    Statement stmt = parseStatement("-(2)**2");
    assertEquals(new RedsInteger(-4), stmt.execute(env));
}
Also used : TestUtils.parseStatement(net.taken.redsnake.tree.TestUtils.parseStatement) Statement(net.taken.redsnake.tree.statements.Statement) RedsInteger(net.taken.redsnake.lang.RedsInteger) Test(org.junit.jupiter.api.Test)

Example 23 with RedsInteger

use of net.taken.redsnake.lang.RedsInteger in project redsnake by Taken0711.

the class ArithmeticBinaryExpressionTest method shouldPrioritizeMultiplyDivideAndModuloOverPlusAndMinus.

@Test
void shouldPrioritizeMultiplyDivideAndModuloOverPlusAndMinus() {
    Statement stmt = parseStatement("2+2*3-4/2+5%3");
    assertEquals(new RedsInteger(8), stmt.execute(env));
}
Also used : TestUtils.parseStatement(net.taken.redsnake.tree.TestUtils.parseStatement) Statement(net.taken.redsnake.tree.statements.Statement) RedsInteger(net.taken.redsnake.lang.RedsInteger) Test(org.junit.jupiter.api.Test)

Example 24 with RedsInteger

use of net.taken.redsnake.lang.RedsInteger in project redsnake by Taken0711.

the class ArithmeticUnaryExpressionTest method shouldReturnCorrectResultWhenExecuteUnaryExprUnaryMinus.

@Test
void shouldReturnCorrectResultWhenExecuteUnaryExprUnaryMinus() {
    ArithmeticUnaryExpression aue = createUnaryExpression(ArithmeticUnaryExpression.Type.MINUS, 2);
    assertEquals(new RedsInteger(-2), aue.execute(env));
}
Also used : RedsInteger(net.taken.redsnake.lang.RedsInteger) Test(org.junit.jupiter.api.Test)

Example 25 with RedsInteger

use of net.taken.redsnake.lang.RedsInteger in project redsnake by Taken0711.

the class AssignmentTest method shouldUpdateValueWhenAssignExistingVariable.

@Test
void shouldUpdateValueWhenAssignExistingVariable() {
    env.putVariable("durra", new RedsInteger(317));
    Assignment assignment = createAssignment("durra", 834);
    assignment.execute(env);
    assertEquals(new RedsInteger(834), env.getVariable("durra"));
}
Also used : RedsInteger(net.taken.redsnake.lang.RedsInteger) Test(org.junit.jupiter.api.Test)

Aggregations

RedsInteger (net.taken.redsnake.lang.RedsInteger)28 Test (org.junit.jupiter.api.Test)28 Statement (net.taken.redsnake.tree.statements.Statement)7 TestUtils.parseStatement (net.taken.redsnake.tree.TestUtils.parseStatement)5 If (net.taken.redsnake.tree.statements.If)3 Program (net.taken.redsnake.tree.Program)2