@Test public void testWideningLongInt() throws Exception { ArithmeticExpression expr = Arith.expr((long) 1, ArithmeticOperator.Addition, 3); assertEquals(MetaClassFactory.get(long.class), expr.getType()); }
@Test public void testDoubleDoubleMakesDouble() throws Exception { ArithmeticExpression expr = Arith.expr(1.0, ArithmeticOperator.Addition, 3.0); assertEquals(MetaClassFactory.get(double.class), expr.getType()); }
@Test public void testWideningByteChar() throws Exception { ArithmeticExpression expr = Arith.expr((byte) 1, ArithmeticOperator.Addition, (char) 3); assertEquals(MetaClassFactory.get(int.class), expr.getType()); }
@Test public void testWideningCharByte() throws Exception { ArithmeticExpression expr = Arith.expr((char) 1, ArithmeticOperator.Addition, (byte) 3); assertEquals(MetaClassFactory.get(int.class), expr.getType()); }
@Test public void testWideningIntLong() throws Exception { ArithmeticExpression expr = Arith.expr(1, ArithmeticOperator.Addition, (long) 3); assertEquals(MetaClassFactory.get(long.class), expr.getType()); }
@Test public void testCharCharMakesInt() throws Exception { ArithmeticExpression expr = Arith.expr((char) 1, ArithmeticOperator.Addition, (char) 3); assertEquals(MetaClassFactory.get(int.class), expr.getType()); }
@Test public void testIfBlockUnchainedWithExpressionUsingArithmetics() { Context ctx = Context.create() .addVariable("a", Integer.class) .addVariable("b", Integer.class) .addVariable("c", Float.class); String s = Stmt.create(ctx) .if_(Bool.expr( Arith.expr( Arith.expr(Stmt.loadVariable("a"), ArithmeticOperator.Addition, Stmt.loadVariable("b")), ArithmeticOperator.Division, Stmt.loadVariable("c")), BooleanOperator.GreaterThan, 1)) .append(Stmt.loadStatic(System.class, "out").invoke("println", Refs.get("a"))) .finish() .toJavaString(); assertEquals("Failed to generate if block using arithmetic expressions", IF_BLOCK_UNCHAINED_WITH_EXPRESSION_USING_ARITHMETICS, s); } }
Cast.to(String.class, args[0]))); containingMethod.append(Stmt.declareFinalVariable("substrStart" + uniq, int.class, Arith.expr(Cast.to(Integer.class, args[1]), ArithmeticOperator.Subtraction, 1))); if (args.length == 2) { return Stmt.loadVariable("substrOrig" + uniq).invoke("substring", Stmt.loadVariable("substrStart" + uniq)); Arith.expr(Cast.to(Integer.class, args[2]), ArithmeticOperator.Addition, Stmt.loadVariable("substrStart" + uniq)))); return Stmt.loadVariable("substrOrig" + uniq).invoke( "substring", Stmt.loadVariable("substrStart" + uniq), Stmt.loadVariable("substrEnd" + uniq)); startIndex = Arith.expr(Stmt.castTo(int.class, Stmt.load(args[2])), ArithmeticOperator.Subtraction, 1); return Stmt.castTo(double.class, Stmt.nestedCall(Arith.expr(indexOf, ArithmeticOperator.Addition, 1)));
.append(Stmt.loadVariable("result").assignValue(Stmt.invokeStatic(Comparisons.class, "nullSafeCompare", lhs, rhs))) .append(Stmt.if_(Bool.notEquals(Stmt.loadVariable("result"), 0)) .append(Stmt.nestedCall(Arith.expr(ascDescOperator, Stmt.loadVariable("result"))).returnValue()) .finish());