class TestCase::If {
static method if_bool : int () {
# Bool - byte true
{
my $pass = 0;
if ((byte)1) {
$pass = 1;
}
else {
$pass = 0;
}
unless ($pass) {
return 0;
}
}
# Bool - short
{
my $pass = 0;
if ((short)1) {
$pass = 1;
}
if ((short)0) {
$pass = 0;
}
unless ($pass) {
return 0;
}
}
# Bool - int
{
my $pass = 0;
if (1) {
$pass = 1;
}
if (0) {
$pass = 0;
}
unless ($pass) {
return 0;
}
}
# Bool - long
{
my $pass = 0;
if (1L) {
$pass = 1;
}
if (0L) {
$pass = 0;
}
unless ($pass) {
return 0;
}
}
# Bool - float
{
my $pass = 0;
if (1.5f) {
$pass = 1;
}
if (0.0f) {
$pass = 0;
}
unless ($pass) {
return 0;
}
}
# Bool - double
{
my $pass = 0;
if (1.5) {
$pass = 1;
}
if (0.0) {
$pass = 0;
}
unless ($pass) {
return 0;
}
}
return 1;
}
static method if_true : int () {
if (1) {
return 1;
}
return 0;
}
static method if_false : int () {
if (0) {
return 0;
}
return 1;
}
static method elsif_match : int () {
my $num = 2;
if ($num == 1) {
return 0;
}
elsif ($num == 2) {
return 1;
}
elsif ($num == 3) {
return 0;
}
else {
return 0;
}
return 0;
}
static method else_match : int () {
my $num = 4;
if ($num == 1) {
return 0;
}
elsif ($num == 2) {
return 0;
}
elsif ($num == 3) {
return 0;
}
else {
return 1;
}
return 0;
}
static method condition_my : int () {
# Check my declaration in if condition part - if condition part is true
{
my $check1 = 0;
my $check2 = 0;
my $num = 1;
if (my $num = 2) {
if ($num == 2) {
$check1 = 1;
}
}
elsif (my $num = 3) {
}
else {
}
if ($num == 1) {
$check2 = 1;
}
unless ($check1 && $check2) {
return 0;
}
}
# Check my declaration in if condition part - elsif condition part is true
{
my $check1 = 0;
my $check2 = 0;
my $num = 1;
if (my $num = 0) {
}
elsif (my $num = 3) {
if ($num == 3) {
$check1 = 1;
}
}
else {
}
if ($num == 1) {
$check2 = 1;
}
unless ($check1 && $check2) {
return 0;
}
}
# Optional tests
{
my $num = 5;
if (my $num = 3) {
unless ($num == 3) {
return 0;
}
}
}
return 1;
}
}