use of php.runtime.Memory in project jphp by jphp-compiler.
the class SimpleExpressionTest method testUnaryPlusMinus.
@Test
public void testUnaryPlusMinus() {
Memory memory;
memory = runDynamic("+ 1");
Assert.assertEquals(1, memory.toLong());
memory = runDynamic("- 1");
Assert.assertEquals(-1, memory.toLong());
memory = runDynamic("+ 0x01");
Assert.assertEquals(1, memory.toLong());
memory = runDynamic("- 0x01");
Assert.assertEquals(-1, memory.toLong());
memory = runDynamic("+ 0b01");
Assert.assertEquals(1, memory.toLong());
memory = runDynamic("- 0b01");
Assert.assertEquals(-1, memory.toLong());
memory = runDynamic("+ 010");
Assert.assertEquals(8, memory.toLong());
memory = runDynamic("- 010");
Assert.assertEquals(-8, memory.toLong());
}
use of php.runtime.Memory in project jphp by jphp-compiler.
the class SimpleExpressionTest method testReferences.
@Test
public void testReferences() {
Memory memory;
memory = run("$x = 40; $y =& $x; $y = 10; return $x;", false);
Assert.assertEquals(10, memory.toLong());
memory = runDynamic("$x = 40; $y =& $x; $y = 10; return $x;", false);
Assert.assertEquals(10, memory.toLong());
memory = runDynamic("$x = array(20, 40); $y =& $x[0]; $y = 40; return $x;", false);
Assert.assertTrue(memory.isArray());
Assert.assertEquals(40, memory.valueOfIndex(0).toLong());
Assert.assertEquals(40, memory.valueOfIndex(1).toLong());
memory = run("$x = array(20, 40); $y =& $x[0]; $y = 40; return $x;", false);
Assert.assertTrue(memory.isArray());
Assert.assertEquals(40, memory.valueOfIndex(0).toLong());
Assert.assertEquals(40, memory.valueOfIndex(1).toLong());
memory = runDynamic("$y =& $x['z']; $x['z'] = 40; return $y;", false);
Assert.assertEquals(40, memory.toLong());
memory = run("$y =& $x['z']; $x['z'] = 40; return $y;", false);
Assert.assertEquals(40, memory.toLong());
}
use of php.runtime.Memory in project jphp by jphp-compiler.
the class SimpleExpressionTest method testAndOrComplex.
@Test
public void testAndOrComplex() {
Memory memory = runDynamic("$x || (!$y && !false || true)");
Assert.assertEquals(true, memory.toBoolean());
memory = runDynamic("$x or (!$y and !false)");
Assert.assertEquals(true, memory.toBoolean());
memory = runDynamic("!$x && ($y || true)");
Assert.assertEquals(true, memory.toBoolean());
memory = runDynamic("!$x and ($y or true)");
Assert.assertEquals(true, memory.toBoolean());
memory = runDynamic("!($x && $y) && true || $z");
Assert.assertEquals(true, memory.toBoolean());
memory = runDynamic("$x || !$y && true");
Assert.assertEquals(true, memory.toBoolean());
memory = runDynamic("$x || (!$y && !null && 100500)");
Assert.assertEquals(true, memory.toBoolean());
memory = runDynamic("$z = $x || 22; return $z", false);
Assert.assertEquals(Memory.TRUE, memory.toValue());
}
use of php.runtime.Memory in project jphp by jphp-compiler.
the class SimpleExpressionTest method testArithmetic.
@Test
public void testArithmetic() {
Memory memory = run("1 + 2");
Assert.assertEquals(3, memory.toLong());
Assert.assertTrue(memory instanceof LongMemory);
memory = run("1 - 2");
Assert.assertEquals(-1, memory.toLong());
Assert.assertTrue(memory instanceof LongMemory);
memory = run("-1 - 2");
Assert.assertEquals(-3, memory.toLong());
Assert.assertTrue(memory instanceof LongMemory);
memory = run("-1 * 2");
Assert.assertEquals(-2, memory.toLong());
Assert.assertTrue(memory instanceof LongMemory);
memory = run("-1 / 2");
Assert.assertEquals(-0.5, memory.toDouble(), 0.0000001);
Assert.assertTrue(memory instanceof DoubleMemory);
memory = run("5 % 2");
Assert.assertEquals(1, memory.toLong());
Assert.assertTrue(memory instanceof LongMemory);
}
use of php.runtime.Memory in project jphp by jphp-compiler.
the class SimpleExpressionTest method testBitwise.
@Test
public void testBitwise() {
Memory memory = runDynamic("0x0f & ~0xf0");
Assert.assertEquals(15, memory.toLong());
}
Aggregations