/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Eclipse Public License (EPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/eclipse-1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
package test.org.jikesrvm.basic.core.bytecode;
public class TestCompare {
public static void main(String[] args) {
zero_cmp();
i_cmp();
l_cmp();
f_cmp();
d_cmp();
a_cmp();
null_cmp();
str_cmp();
}
static void zero_cmp() {
int i = -1;
System.out.print("zero_cmp Expected: 100110 Actual: ");
if (i != 0) System.out.print(1); else System.out.print(0); // ifeq
if (i == 0) System.out.print(1); else System.out.print(0); // ifne
if (i >= 0) System.out.print(1); else System.out.print(0); // iflt
if (i < 0) System.out.print(1); else System.out.print(0); // ifge
if (i <= 0) System.out.print(1); else System.out.print(0); // ifgt
if (i > 0) System.out.print(1); else System.out.print(0); // ifle
System.out.println();
}
static void i_cmp() {
int i = -1;
int j = 0;
System.out.print("i_cmp Expected: 100110 Actual: ");
if (i != j) System.out.print(1); else System.out.print(0); // if_icmpeq
if (i == j) System.out.print(1); else System.out.print(0); // if_icmpne
if (i >= j) System.out.print(1); else System.out.print(0); // if_icmplt
if (i < j) System.out.print(1); else System.out.print(0); // if_icmpge
if (i <= j) System.out.print(1); else System.out.print(0); // if_icmpgt
if (i > j) System.out.print(1); else System.out.print(0); // if_icmple
System.out.println();
}
static void l_cmp() {
long a = 1;
long b = 2;
System.out.print("l_cmp Expected: 100010001 Actual: ");
if (a < b) System.out.print(1); else System.out.print(0); // lcmp(-1)
if (a == b) System.out.print(1); else System.out.print(0);
if (a > b) System.out.print(1); else System.out.print(0);
if (a < a) System.out.print(1); else System.out.print(0);
if (a == a) System.out.print(1); else System.out.print(0); // lcmp(0)
if (a > a) System.out.print(1); else System.out.print(0);
if (b < a) System.out.print(1); else System.out.print(0);
if (b == a) System.out.print(1); else System.out.print(0);
if (b > a) System.out.print(1); else System.out.print(0); // lcmp(1)
System.out.println();
}
static void f_cmp() {
float a = 1;
float b = 2;
System.out.print("f_cmp Expected: 100010001 Actual: ");
if (a < b) System.out.print(1); else System.out.print(0); // fcmp[lg](-1)
if (a == b) System.out.print(1); else System.out.print(0);
if (a > b) System.out.print(1); else System.out.print(0);
if (a < a) System.out.print(1); else System.out.print(0);
if (a == a) System.out.print(1); else System.out.print(0); // fcmp[lg](0)
if (a > a) System.out.print(1); else System.out.print(0);
if (b < a) System.out.print(1); else System.out.print(0);
if (b == a) System.out.print(1); else System.out.print(0);
if (b > a) System.out.print(1); else System.out.print(0); // fcmp[lg](1)
System.out.println();
}
static void d_cmp() {
double a = 1;
double b = 2;
System.out.print("d_cmp Expected: 100010001 Actual: ");
if (a < b) System.out.print(1); else System.out.print(0); // dcmp[lg](-1)
if (a == b) System.out.print(1); else System.out.print(0);
if (a > b) System.out.print(1); else System.out.print(0);
if (a < a) System.out.print(1); else System.out.print(0);
if (a == a) System.out.print(1); else System.out.print(0); // dcmp[lg](0)
if (a > a) System.out.print(1); else System.out.print(0);
if (b < a) System.out.print(1); else System.out.print(0);
if (b == a) System.out.print(1); else System.out.print(0);
if (b > a) System.out.print(1); else System.out.print(0); // dcmp[lg](1)
System.out.println();
}
static void a_cmp() {
Object a = null;
Object b = null;
System.out.print("a_cmp Expected: 10 Actual: ");
if (a == b) System.out.print(1); else System.out.print(0); // if_acmpne
if (a != b) System.out.print(1); else System.out.print(0); // if_acmpeq
System.out.println();
}
static void null_cmp() {
Object o = null;
System.out.print("null_cmp Expected: 10 Actual: ");
if (o == null) System.out.print(1); else System.out.print(0); // ifnonnull
if (o != null) System.out.print(1); else System.out.print(0); // ifnull
System.out.println();
}
static void str_cmp() {
String s1 = "abc";
String s2 = "abc";
String s3 = "ab";
s3 = s3 + "c";
System.out.println("str_cmp Expected: true,false Actual: " + (s1 == s2) + "," + (s1 == s3));
}
}