Skip to content

Commit 0318477

Browse files
committed
Add test
1 parent 79bcae7 commit 0318477

3 files changed

Lines changed: 54 additions & 12 deletions

File tree

src/Kernel/Mnemonics/_lcmp.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
use Brick\Math\BigInteger;
55
use PHPJava\Kernel\Types\_Int;
6+
use PHPJava\Utilities\Extractor;
67

78
final class _lcmp implements OperationInterface
89
{
@@ -11,8 +12,8 @@ final class _lcmp implements OperationInterface
1112

1213
public function execute(): void
1314
{
14-
$value2 = $this->popFromOperandStack();
15-
$value1 = $this->popFromOperandStack();
15+
$value2 = (string) Extractor::getRealValue($this->popFromOperandStack());
16+
$value1 = (string) Extractor::getRealValue($this->popFromOperandStack());
1617

1718
$compare = BigInteger::of($value1)->compareTo($value2);
1819

tests/BranchIfTest.php

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<?php
22
namespace PHPJava\Tests;
33

4+
use PHPJava\Kernel\Types\_Long;
5+
46
class BranchIfTest extends Base
57
{
68
protected $fixtures = [
@@ -30,11 +32,11 @@ public function testIfAcmpNe()
3032
$this->assertEquals(1, $actual);
3133
}
3234

33-
// public function testIfIcmpEq()
34-
// {
35-
// $actual = $this->call('ifIcmpEq', 5, 3);
36-
// $this->assertEquals(0, $actual);
37-
// }
35+
public function testIfIcmpEq()
36+
{
37+
$actual = $this->call('ifIcmpEq', 5, 3);
38+
$this->assertEquals(0, $actual);
39+
}
3840

3941
public function testIfIcmpNe()
4042
{
@@ -60,9 +62,33 @@ public function testIfIcmpGt()
6062
$this->assertEquals(1, $actual);
6163
}
6264

63-
// public function testIfIcmpLe()
64-
// {
65-
// $actual = $this->call('ifIcmpLe', 5, 3);
66-
// $this->assertEquals(0, $actual);
67-
// }
65+
public function testIfIcmpLe()
66+
{
67+
$actual = $this->call('ifIcmpLe', 5, 3);
68+
$this->assertEquals(0, $actual);
69+
}
70+
71+
public function testIfLcmpGraterThan()
72+
{
73+
$actual = $this->call('ifLcmpGraterThan', _Long::get(5), _Long::get(3));
74+
$this->assertEquals(0, $actual);
75+
}
76+
77+
public function testIfLcmpLessThan()
78+
{
79+
$actual = $this->call('ifLcmpLessThan', _Long::get(5), _Long::get(3));
80+
$this->assertEquals(1, $actual);
81+
}
82+
83+
public function testIfLcmpNotEqualsTo()
84+
{
85+
$actual = $this->call('ifLcmpEqualsTo', _Long::get(5), _Long::get(3));
86+
$this->assertEquals(1, $actual);
87+
}
88+
89+
public function testIfLcmpEqualsTo()
90+
{
91+
$actual = $this->call('ifLcmpEqualsTo', _Long::get(5), _Long::get(5));
92+
$this->assertEquals(0, $actual);
93+
}
6894
}

tests/fixtures/java/BranchIfTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,19 @@ public static int ifIcmpLe(int value1, int value2)
3939
{
4040
return value1 > value2 ? 0 : 1;
4141
}
42+
43+
public static int ifLcmpGraterThan(long value1, long value2)
44+
{
45+
return value1 > value2 ? 0 : 1;
46+
}
47+
48+
public static int ifLcmpLessThan(long value1, long value2)
49+
{
50+
return value1 < value2 ? 0 : 1;
51+
}
52+
53+
public static int ifLcmpEqualsTo(long value1, long value2)
54+
{
55+
return value1 == value2 ? 0 : 1;
56+
}
4257
}

0 commit comments

Comments
 (0)