1*795d594fSAndroid Build Coastguard Worker /* 2*795d594fSAndroid Build Coastguard Worker * Copyright (C) 2016 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker * 4*795d594fSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker * 8*795d594fSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker * 10*795d594fSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker * limitations under the License. 15*795d594fSAndroid Build Coastguard Worker */ 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard Worker public class TestCompare { 18*795d594fSAndroid Build Coastguard Worker 19*795d594fSAndroid Build Coastguard Worker /// CHECK-START: void TestCompare.$opt$noinline$testReplaceInputWithItself(int) builder (after) 20*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<ArgX:i\d+>> ParameterValue 21*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 22*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Cmp:i\d+>> Compare [<<ArgX>>,<<Zero>>] 23*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: GreaterThanOrEqual [<<Cmp>>,<<Zero>>] 24*795d594fSAndroid Build Coastguard Worker 25*795d594fSAndroid Build Coastguard Worker /// CHECK-START: void TestCompare.$opt$noinline$testReplaceInputWithItself(int) instruction_simplifier (after) 26*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<ArgX:i\d+>> ParameterValue 27*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 28*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: GreaterThanOrEqual [<<ArgX>>,<<Zero>>] 29*795d594fSAndroid Build Coastguard Worker $opt$noinline$testReplaceInputWithItself(int x)30*795d594fSAndroid Build Coastguard Worker public static void $opt$noinline$testReplaceInputWithItself(int x) { 31*795d594fSAndroid Build Coastguard Worker // The instruction builder first replaces Integer.compare(x, 0) with Compare HIR 32*795d594fSAndroid Build Coastguard Worker // and then the instruction simplifier merges the Compare into the GreaterThanOrEqual. 33*795d594fSAndroid Build Coastguard Worker // This is a regression test to check that it is allowed to replace the second 34*795d594fSAndroid Build Coastguard Worker // input of the GreaterThanOrEqual, i.e. <<Zero>>, with the very same instruction. 35*795d594fSAndroid Build Coastguard Worker if (Integer.compare(x, 0) < 0) { 36*795d594fSAndroid Build Coastguard Worker System.out.println("OOOPS"); 37*795d594fSAndroid Build Coastguard Worker } 38*795d594fSAndroid Build Coastguard Worker } 39*795d594fSAndroid Build Coastguard Worker 40*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBooleans(boolean, boolean) select_generator (after) 41*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: Phi 42*795d594fSAndroid Build Coastguard Worker 43*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBooleans(boolean, boolean) instruction_simplifier$before_codegen (after) 44*795d594fSAndroid Build Coastguard Worker /// CHECK: <<ArgX:z\d+>> ParameterValue 45*795d594fSAndroid Build Coastguard Worker /// CHECK: <<ArgY:z\d+>> ParameterValue 46*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare [<<ArgX>>,<<ArgY>>] 47*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 48*795d594fSAndroid Build Coastguard Worker 49*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBooleans(boolean, boolean) instruction_simplifier$before_codegen (after) 50*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: Select 51*795d594fSAndroid Build Coastguard Worker compareBooleans(boolean x, boolean y)52*795d594fSAndroid Build Coastguard Worker private static int compareBooleans(boolean x, boolean y) { 53*795d594fSAndroid Build Coastguard Worker return Integer.compare((x ? 1 : 0), (y ? 1 : 0)); 54*795d594fSAndroid Build Coastguard Worker } 55*795d594fSAndroid Build Coastguard Worker 56*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) builder (after) 57*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 58*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<One:i\d+>> IntConstant 1 59*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<PhiX:i\d+>> Phi [<<One>>,<<Zero>>] 60*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<PhiY:i\d+>> Phi [<<One>>,<<Zero>>] 61*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare [<<PhiX>>,<<PhiY>>] 62*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 63*795d594fSAndroid Build Coastguard Worker 64*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) builder (after) 65*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 66*795d594fSAndroid Build Coastguard Worker 67*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) select_generator (after) 68*795d594fSAndroid Build Coastguard Worker /// CHECK: <<ArgX:z\d+>> ParameterValue 69*795d594fSAndroid Build Coastguard Worker /// CHECK: <<ArgY:z\d+>> ParameterValue 70*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 71*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<One:i\d+>> IntConstant 1 72*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<SelX:i\d+>> Select [<<Zero>>,<<One>>,<<ArgX>>] 73*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<SelY:i\d+>> Select [<<Zero>>,<<One>>,<<ArgY>>] 74*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare [<<SelX>>,<<SelY>>] 75*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 76*795d594fSAndroid Build Coastguard Worker 77*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) select_generator (after) 78*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: Phi 79*795d594fSAndroid Build Coastguard Worker 80*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) instruction_simplifier$before_codegen (after) 81*795d594fSAndroid Build Coastguard Worker /// CHECK: <<ArgX:z\d+>> ParameterValue 82*795d594fSAndroid Build Coastguard Worker /// CHECK: <<ArgY:z\d+>> ParameterValue 83*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare [<<ArgX>>,<<ArgY>>] 84*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 85*795d594fSAndroid Build Coastguard Worker 86*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) instruction_simplifier$before_codegen (after) 87*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: Select 88*795d594fSAndroid Build Coastguard Worker compareBooleans2(boolean x, boolean y)89*795d594fSAndroid Build Coastguard Worker private static int compareBooleans2(boolean x, boolean y) { 90*795d594fSAndroid Build Coastguard Worker // Note: D8 would replace the ternary expression `x ? 1 : 0` with `x` 91*795d594fSAndroid Build Coastguard Worker // but explicit `if` is preserved. 92*795d594fSAndroid Build Coastguard Worker int src_x; 93*795d594fSAndroid Build Coastguard Worker if (x) { 94*795d594fSAndroid Build Coastguard Worker src_x = 1; 95*795d594fSAndroid Build Coastguard Worker } else { 96*795d594fSAndroid Build Coastguard Worker src_x = 0; 97*795d594fSAndroid Build Coastguard Worker } 98*795d594fSAndroid Build Coastguard Worker int src_y; 99*795d594fSAndroid Build Coastguard Worker if (y) { 100*795d594fSAndroid Build Coastguard Worker src_y = 1; 101*795d594fSAndroid Build Coastguard Worker } else { 102*795d594fSAndroid Build Coastguard Worker src_y = 0; 103*795d594fSAndroid Build Coastguard Worker } 104*795d594fSAndroid Build Coastguard Worker return Integer.compare(src_x, src_y); 105*795d594fSAndroid Build Coastguard Worker } 106*795d594fSAndroid Build Coastguard Worker 107*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBytes(byte, byte) builder (after) 108*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 109*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 110*795d594fSAndroid Build Coastguard Worker 111*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareBytes(byte, byte) builder (after) 112*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 113*795d594fSAndroid Build Coastguard Worker compareBytes(byte x, byte y)114*795d594fSAndroid Build Coastguard Worker private static int compareBytes(byte x, byte y) { 115*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 116*795d594fSAndroid Build Coastguard Worker } 117*795d594fSAndroid Build Coastguard Worker 118*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareShorts(short, short) builder (after) 119*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 120*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 121*795d594fSAndroid Build Coastguard Worker 122*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareShorts(short, short) builder (after) 123*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 124*795d594fSAndroid Build Coastguard Worker compareShorts(short x, short y)125*795d594fSAndroid Build Coastguard Worker private static int compareShorts(short x, short y) { 126*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 127*795d594fSAndroid Build Coastguard Worker } 128*795d594fSAndroid Build Coastguard Worker 129*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareChars(char, char) builder (after) 130*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 131*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 132*795d594fSAndroid Build Coastguard Worker 133*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareChars(char, char) builder (after) 134*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 135*795d594fSAndroid Build Coastguard Worker compareChars(char x, char y)136*795d594fSAndroid Build Coastguard Worker private static int compareChars(char x, char y) { 137*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 138*795d594fSAndroid Build Coastguard Worker } 139*795d594fSAndroid Build Coastguard Worker 140*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareInts(int, int) builder (after) 141*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 142*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 143*795d594fSAndroid Build Coastguard Worker 144*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareInts(int, int) builder (after) 145*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 146*795d594fSAndroid Build Coastguard Worker compareInts(int x, int y)147*795d594fSAndroid Build Coastguard Worker private static int compareInts(int x, int y) { 148*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 149*795d594fSAndroid Build Coastguard Worker } 150*795d594fSAndroid Build Coastguard Worker 151*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareLongs(long, long) builder (after) 152*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 153*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 154*795d594fSAndroid Build Coastguard Worker 155*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareLongs(long, long) builder (after) 156*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 157*795d594fSAndroid Build Coastguard Worker compareLongs(long x, long y)158*795d594fSAndroid Build Coastguard Worker private static int compareLongs(long x, long y) { 159*795d594fSAndroid Build Coastguard Worker return Long.compare(x, y); 160*795d594fSAndroid Build Coastguard Worker } 161*795d594fSAndroid Build Coastguard Worker 162*795d594fSAndroid Build Coastguard Worker 163*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareByteShort(byte, short) builder (after) 164*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 165*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 166*795d594fSAndroid Build Coastguard Worker 167*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareByteShort(byte, short) builder (after) 168*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 169*795d594fSAndroid Build Coastguard Worker compareByteShort(byte x, short y)170*795d594fSAndroid Build Coastguard Worker public static int compareByteShort(byte x, short y) { 171*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 172*795d594fSAndroid Build Coastguard Worker } 173*795d594fSAndroid Build Coastguard Worker 174*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareByteChar(byte, char) builder (after) 175*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 176*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 177*795d594fSAndroid Build Coastguard Worker 178*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareByteChar(byte, char) builder (after) 179*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 180*795d594fSAndroid Build Coastguard Worker compareByteChar(byte x, char y)181*795d594fSAndroid Build Coastguard Worker public static int compareByteChar(byte x, char y) { 182*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 183*795d594fSAndroid Build Coastguard Worker } 184*795d594fSAndroid Build Coastguard Worker 185*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareByteInt(byte, int) builder (after) 186*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 187*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 188*795d594fSAndroid Build Coastguard Worker 189*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareByteInt(byte, int) builder (after) 190*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 191*795d594fSAndroid Build Coastguard Worker compareByteInt(byte x, int y)192*795d594fSAndroid Build Coastguard Worker public static int compareByteInt(byte x, int y) { 193*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 194*795d594fSAndroid Build Coastguard Worker } 195*795d594fSAndroid Build Coastguard Worker 196*795d594fSAndroid Build Coastguard Worker 197*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareShortByte(short, byte) builder (after) 198*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 199*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 200*795d594fSAndroid Build Coastguard Worker 201*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareShortByte(short, byte) builder (after) 202*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 203*795d594fSAndroid Build Coastguard Worker compareShortByte(short x, byte y)204*795d594fSAndroid Build Coastguard Worker public static int compareShortByte(short x, byte y) { 205*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 206*795d594fSAndroid Build Coastguard Worker } 207*795d594fSAndroid Build Coastguard Worker 208*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareShortChar(short, char) builder (after) 209*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 210*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 211*795d594fSAndroid Build Coastguard Worker 212*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareShortChar(short, char) builder (after) 213*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 214*795d594fSAndroid Build Coastguard Worker compareShortChar(short x, char y)215*795d594fSAndroid Build Coastguard Worker public static int compareShortChar(short x, char y) { 216*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 217*795d594fSAndroid Build Coastguard Worker } 218*795d594fSAndroid Build Coastguard Worker 219*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareShortInt(short, int) builder (after) 220*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 221*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 222*795d594fSAndroid Build Coastguard Worker 223*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareShortInt(short, int) builder (after) 224*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 225*795d594fSAndroid Build Coastguard Worker compareShortInt(short x, int y)226*795d594fSAndroid Build Coastguard Worker public static int compareShortInt(short x, int y) { 227*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 228*795d594fSAndroid Build Coastguard Worker } 229*795d594fSAndroid Build Coastguard Worker 230*795d594fSAndroid Build Coastguard Worker 231*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareCharByte(char, byte) builder (after) 232*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 233*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 234*795d594fSAndroid Build Coastguard Worker 235*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareCharByte(char, byte) builder (after) 236*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 237*795d594fSAndroid Build Coastguard Worker compareCharByte(char x, byte y)238*795d594fSAndroid Build Coastguard Worker public static int compareCharByte(char x, byte y) { 239*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 240*795d594fSAndroid Build Coastguard Worker } 241*795d594fSAndroid Build Coastguard Worker 242*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareCharShort(char, short) builder (after) 243*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 244*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 245*795d594fSAndroid Build Coastguard Worker 246*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareCharShort(char, short) builder (after) 247*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 248*795d594fSAndroid Build Coastguard Worker compareCharShort(char x, short y)249*795d594fSAndroid Build Coastguard Worker public static int compareCharShort(char x, short y) { 250*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 251*795d594fSAndroid Build Coastguard Worker } 252*795d594fSAndroid Build Coastguard Worker 253*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareCharInt(char, int) builder (after) 254*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 255*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 256*795d594fSAndroid Build Coastguard Worker 257*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareCharInt(char, int) builder (after) 258*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 259*795d594fSAndroid Build Coastguard Worker compareCharInt(char x, int y)260*795d594fSAndroid Build Coastguard Worker public static int compareCharInt(char x, int y) { 261*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 262*795d594fSAndroid Build Coastguard Worker } 263*795d594fSAndroid Build Coastguard Worker 264*795d594fSAndroid Build Coastguard Worker 265*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareIntByte(int, byte) builder (after) 266*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 267*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 268*795d594fSAndroid Build Coastguard Worker 269*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareIntByte(int, byte) builder (after) 270*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 271*795d594fSAndroid Build Coastguard Worker compareIntByte(int x, byte y)272*795d594fSAndroid Build Coastguard Worker public static int compareIntByte(int x, byte y) { 273*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 274*795d594fSAndroid Build Coastguard Worker } 275*795d594fSAndroid Build Coastguard Worker 276*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareIntShort(int, short) builder (after) 277*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 278*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 279*795d594fSAndroid Build Coastguard Worker 280*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareIntShort(int, short) builder (after) 281*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 282*795d594fSAndroid Build Coastguard Worker compareIntShort(int x, short y)283*795d594fSAndroid Build Coastguard Worker public static int compareIntShort(int x, short y) { 284*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 285*795d594fSAndroid Build Coastguard Worker } 286*795d594fSAndroid Build Coastguard Worker 287*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareIntChar(int, char) builder (after) 288*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: <<Result:i\d+>> Compare 289*795d594fSAndroid Build Coastguard Worker /// CHECK-DAG: Return [<<Result>>] 290*795d594fSAndroid Build Coastguard Worker 291*795d594fSAndroid Build Coastguard Worker /// CHECK-START: int TestCompare.compareIntChar(int, char) builder (after) 292*795d594fSAndroid Build Coastguard Worker /// CHECK-NOT: InvokeStaticOrDirect 293*795d594fSAndroid Build Coastguard Worker compareIntChar(int x, char y)294*795d594fSAndroid Build Coastguard Worker public static int compareIntChar(int x, char y) { 295*795d594fSAndroid Build Coastguard Worker return Integer.compare(x, y); 296*795d594fSAndroid Build Coastguard Worker } 297*795d594fSAndroid Build Coastguard Worker 298*795d594fSAndroid Build Coastguard Worker testCompareBooleans()299*795d594fSAndroid Build Coastguard Worker public static void testCompareBooleans() { 300*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBooleans(false, true)); 301*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBooleans2(false, true)); 302*795d594fSAndroid Build Coastguard Worker 303*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareBooleans(false, false)); 304*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareBooleans(true, true)); 305*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareBooleans2(false, false)); 306*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareBooleans2(true, true)); 307*795d594fSAndroid Build Coastguard Worker 308*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBooleans(true, false)); 309*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBooleans2(true, false)); 310*795d594fSAndroid Build Coastguard Worker } 311*795d594fSAndroid Build Coastguard Worker testCompareBytes()312*795d594fSAndroid Build Coastguard Worker public static void testCompareBytes() { 313*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBytes(Byte.MIN_VALUE, (byte)(Byte.MIN_VALUE + 1))); 314*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBytes(Byte.MIN_VALUE, (byte)-1)); 315*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBytes(Byte.MIN_VALUE, (byte)0)); 316*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBytes(Byte.MIN_VALUE, (byte)1)); 317*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBytes(Byte.MIN_VALUE, Byte.MAX_VALUE)); 318*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBytes((byte)-1, (byte)0)); 319*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBytes((byte)-1, (byte)1)); 320*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareBytes((byte)0, (byte)1)); 321*795d594fSAndroid Build Coastguard Worker 322*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareBytes(Byte.MIN_VALUE, Byte.MIN_VALUE)); 323*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareBytes((byte)-1, (byte)-1)); 324*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareBytes((byte)0, (byte)0)); 325*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareBytes((byte)1, (byte)1)); 326*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareBytes(Byte.MAX_VALUE, Byte.MAX_VALUE)); 327*795d594fSAndroid Build Coastguard Worker 328*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBytes((byte)0, (byte)-1)); 329*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBytes((byte)1, (byte)-1)); 330*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBytes((byte)1, (byte)0)); 331*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBytes(Byte.MAX_VALUE, Byte.MIN_VALUE)); 332*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBytes(Byte.MAX_VALUE, (byte)-1)); 333*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBytes(Byte.MAX_VALUE, (byte)0)); 334*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBytes(Byte.MAX_VALUE, (byte)1)); 335*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareBytes(Byte.MAX_VALUE, (byte)(Byte.MAX_VALUE - 1))); 336*795d594fSAndroid Build Coastguard Worker 337*795d594fSAndroid Build Coastguard Worker for (byte i = -11; i <= 11; i++) { 338*795d594fSAndroid Build Coastguard Worker for (byte j = -11; j <= 11; j++) { 339*795d594fSAndroid Build Coastguard Worker int expected = 0; 340*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 341*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 342*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareBytes(i, j)); 343*795d594fSAndroid Build Coastguard Worker } 344*795d594fSAndroid Build Coastguard Worker } 345*795d594fSAndroid Build Coastguard Worker } 346*795d594fSAndroid Build Coastguard Worker testCompareShorts()347*795d594fSAndroid Build Coastguard Worker public static void testCompareShorts() { 348*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)(Short.MIN_VALUE + 1))); 349*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)-1)); 350*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)0)); 351*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)1)); 352*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)Short.MAX_VALUE)); 353*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShorts((short)-1, (short)0)); 354*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShorts((short)-1, (short)1)); 355*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShorts((short)0, (short)1)); 356*795d594fSAndroid Build Coastguard Worker 357*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShorts(Short.MIN_VALUE, Short.MIN_VALUE)); 358*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShorts((short)-1, (short)-1)); 359*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShorts((short)0, (short)0)); 360*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShorts((short)1, (short)1)); 361*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShorts(Short.MAX_VALUE, Short.MAX_VALUE)); 362*795d594fSAndroid Build Coastguard Worker 363*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShorts((short)0, (short)-1)); 364*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShorts((short)1, (short)-1)); 365*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShorts((short)1, (short)0)); 366*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShorts(Short.MAX_VALUE, Short.MIN_VALUE)); 367*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShorts(Short.MAX_VALUE, (short)-1)); 368*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShorts(Short.MAX_VALUE, (short)0)); 369*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShorts(Short.MAX_VALUE, (short)1)); 370*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShorts(Short.MAX_VALUE, (short)(Short.MAX_VALUE - 1))); 371*795d594fSAndroid Build Coastguard Worker 372*795d594fSAndroid Build Coastguard Worker for (short i = -11; i <= 11; i++) { 373*795d594fSAndroid Build Coastguard Worker for (short j = -11; j <= 11; j++) { 374*795d594fSAndroid Build Coastguard Worker int expected = 0; 375*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 376*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 377*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareShorts(i, j)); 378*795d594fSAndroid Build Coastguard Worker } 379*795d594fSAndroid Build Coastguard Worker } 380*795d594fSAndroid Build Coastguard Worker } 381*795d594fSAndroid Build Coastguard Worker testCompareChars()382*795d594fSAndroid Build Coastguard Worker public static void testCompareChars() { 383*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareChars((char)0, Character.MAX_VALUE)); 384*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareChars((char)0, (char)1)); 385*795d594fSAndroid Build Coastguard Worker 386*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareChars((char)0, (char)0)); 387*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareChars((char)1, (char)1)); 388*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareChars(Character.MAX_VALUE, Character.MAX_VALUE)); 389*795d594fSAndroid Build Coastguard Worker 390*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareChars((char)1, (char)0)); 391*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareChars(Character.MAX_VALUE, (char)0)); 392*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareChars(Character.MAX_VALUE, (char)1)); 393*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareChars(Character.MAX_VALUE, (char)(Character.MAX_VALUE - 1))); 394*795d594fSAndroid Build Coastguard Worker 395*795d594fSAndroid Build Coastguard Worker for (char i = 0; i <= 11; i++) { 396*795d594fSAndroid Build Coastguard Worker for (char j = 0; j <= 11; j++) { 397*795d594fSAndroid Build Coastguard Worker int expected = 0; 398*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 399*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 400*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareChars(i, j)); 401*795d594fSAndroid Build Coastguard Worker } 402*795d594fSAndroid Build Coastguard Worker } 403*795d594fSAndroid Build Coastguard Worker } 404*795d594fSAndroid Build Coastguard Worker testCompareInts()405*795d594fSAndroid Build Coastguard Worker public static void testCompareInts() { 406*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareInts(Integer.MIN_VALUE, Integer.MIN_VALUE + 1)); 407*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareInts(Integer.MIN_VALUE, -1)); 408*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareInts(Integer.MIN_VALUE, 0)); 409*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareInts(Integer.MIN_VALUE, 1)); 410*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareInts(Integer.MIN_VALUE, Integer.MAX_VALUE)); 411*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareInts(-1, 0)); 412*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareInts(-1, 1)); 413*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareInts(0, 1)); 414*795d594fSAndroid Build Coastguard Worker 415*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareInts(Integer.MIN_VALUE, Integer.MIN_VALUE)); 416*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareInts(-1, -1)); 417*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareInts(0, 0)); 418*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareInts(1, 1)); 419*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareInts(Integer.MAX_VALUE, Integer.MAX_VALUE)); 420*795d594fSAndroid Build Coastguard Worker 421*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareInts(0, -1)); 422*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareInts(1, -1)); 423*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareInts(1, 0)); 424*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareInts(Integer.MAX_VALUE, Integer.MIN_VALUE)); 425*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareInts(Integer.MAX_VALUE, -1)); 426*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareInts(Integer.MAX_VALUE, 0)); 427*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareInts(Integer.MAX_VALUE, 1)); 428*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareInts(Integer.MAX_VALUE, Integer.MAX_VALUE - 1)); 429*795d594fSAndroid Build Coastguard Worker 430*795d594fSAndroid Build Coastguard Worker for (int i = -11; i <= 11; i++) { 431*795d594fSAndroid Build Coastguard Worker for (int j = -11; j <= 11; j++) { 432*795d594fSAndroid Build Coastguard Worker int expected = 0; 433*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 434*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 435*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareInts(i, j)); 436*795d594fSAndroid Build Coastguard Worker } 437*795d594fSAndroid Build Coastguard Worker } 438*795d594fSAndroid Build Coastguard Worker } 439*795d594fSAndroid Build Coastguard Worker testCompareLongs()440*795d594fSAndroid Build Coastguard Worker public static void testCompareLongs() { 441*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(Long.MIN_VALUE, Long.MIN_VALUE + 1L)); 442*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(Long.MIN_VALUE, -1L)); 443*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(Long.MIN_VALUE, 0L)); 444*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(Long.MIN_VALUE, 1L)); 445*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(Long.MIN_VALUE, Long.MAX_VALUE)); 446*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(-1L, 0L)); 447*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(-1L, 1L)); 448*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(0L, 1L)); 449*795d594fSAndroid Build Coastguard Worker 450*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareLongs(Long.MIN_VALUE, Long.MIN_VALUE)); 451*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareLongs(-1L, -1L)); 452*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareLongs(0L, 0L)); 453*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareLongs(1L, 1L)); 454*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareLongs(Long.MAX_VALUE, Long.MAX_VALUE)); 455*795d594fSAndroid Build Coastguard Worker 456*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(0L, -1L)); 457*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(1L, -1L)); 458*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(1L, 0L)); 459*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(Long.MAX_VALUE, Long.MIN_VALUE)); 460*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(Long.MAX_VALUE, -1L)); 461*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(Long.MAX_VALUE, 0L)); 462*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(Long.MAX_VALUE, 1L)); 463*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(Long.MAX_VALUE, Long.MAX_VALUE - 1L)); 464*795d594fSAndroid Build Coastguard Worker 465*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(0x111111117FFFFFFFL, 0x11111111FFFFFFFFL)); 466*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareLongs(0x111111117FFFFFFFL, 0x111111117FFFFFFFL)); 467*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(0x11111111FFFFFFFFL, 0x111111117FFFFFFFL)); 468*795d594fSAndroid Build Coastguard Worker 469*795d594fSAndroid Build Coastguard Worker for (long i = -11L; i <= 11L; i++) { 470*795d594fSAndroid Build Coastguard Worker for (long j = -11L; j <= 11L; j++) { 471*795d594fSAndroid Build Coastguard Worker int expected = 0; 472*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 473*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 474*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareLongs(i, j)); 475*795d594fSAndroid Build Coastguard Worker } 476*795d594fSAndroid Build Coastguard Worker } 477*795d594fSAndroid Build Coastguard Worker 478*795d594fSAndroid Build Coastguard Worker for (long i = Long.MIN_VALUE; i <= Long.MIN_VALUE + 11L; i++) { 479*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareLongs(i, 0)); 480*795d594fSAndroid Build Coastguard Worker } 481*795d594fSAndroid Build Coastguard Worker 482*795d594fSAndroid Build Coastguard Worker for (long i = Long.MAX_VALUE; i >= Long.MAX_VALUE - 11L; i--) { 483*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareLongs(i, 0)); 484*795d594fSAndroid Build Coastguard Worker } 485*795d594fSAndroid Build Coastguard Worker } 486*795d594fSAndroid Build Coastguard Worker 487*795d594fSAndroid Build Coastguard Worker testCompareByteShort()488*795d594fSAndroid Build Coastguard Worker public static void testCompareByteShort() { 489*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteShort(Byte.MIN_VALUE, (short)-1)); 490*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteShort(Byte.MIN_VALUE, (short)0)); 491*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteShort(Byte.MIN_VALUE, (short)1)); 492*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteShort(Byte.MIN_VALUE, Short.MAX_VALUE)); 493*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteShort((byte)-1, (short)0)); 494*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteShort((byte)-1, (short)1)); 495*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteShort((byte)0, (short)1)); 496*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteShort(Byte.MAX_VALUE, (short)(Short.MAX_VALUE - 1))); 497*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteShort(Byte.MAX_VALUE, Short.MAX_VALUE)); 498*795d594fSAndroid Build Coastguard Worker 499*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareByteShort((byte)-1, (short)-1)); 500*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareByteShort((byte)0, (short)0)); 501*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareByteShort((byte)1, (short)1)); 502*795d594fSAndroid Build Coastguard Worker 503*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteShort(Byte.MIN_VALUE, Short.MIN_VALUE)); 504*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteShort(Byte.MIN_VALUE, (short)(Short.MIN_VALUE + 1))); 505*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteShort((byte)0, (short)-1)); 506*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteShort((byte)1, (short)-1)); 507*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteShort((byte)1, (short)0)); 508*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteShort(Byte.MAX_VALUE, Short.MIN_VALUE)); 509*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteShort(Byte.MAX_VALUE, (short)-1)); 510*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteShort(Byte.MAX_VALUE, (short)0)); 511*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteShort(Byte.MAX_VALUE, (short)1)); 512*795d594fSAndroid Build Coastguard Worker 513*795d594fSAndroid Build Coastguard Worker for (byte i = -11; i <= 11; i++) { 514*795d594fSAndroid Build Coastguard Worker for (short j = -11; j <= 11; j++) { 515*795d594fSAndroid Build Coastguard Worker int expected = 0; 516*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 517*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 518*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareByteShort(i, j)); 519*795d594fSAndroid Build Coastguard Worker } 520*795d594fSAndroid Build Coastguard Worker } 521*795d594fSAndroid Build Coastguard Worker } 522*795d594fSAndroid Build Coastguard Worker testCompareByteChar()523*795d594fSAndroid Build Coastguard Worker public static void testCompareByteChar() { 524*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteChar(Byte.MIN_VALUE, (char)0)); 525*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteChar(Byte.MIN_VALUE, (char)1)); 526*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteChar(Byte.MIN_VALUE, Character.MAX_VALUE)); 527*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteChar((byte)-1, (char)0)); 528*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteChar((byte)-1, (char)1)); 529*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteChar((byte)0, (char)1)); 530*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteChar(Byte.MAX_VALUE, (char)(Character.MAX_VALUE - 1))); 531*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteChar(Byte.MAX_VALUE, Character.MAX_VALUE)); 532*795d594fSAndroid Build Coastguard Worker 533*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareByteChar((byte)0, (char)0)); 534*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareByteChar((byte)1, (char)1)); 535*795d594fSAndroid Build Coastguard Worker 536*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteChar((byte)1, (char)0)); 537*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteChar(Byte.MAX_VALUE, (char)0)); 538*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteChar(Byte.MAX_VALUE, (char)1)); 539*795d594fSAndroid Build Coastguard Worker 540*795d594fSAndroid Build Coastguard Worker for (byte i = -11; i <= 11; i++) { 541*795d594fSAndroid Build Coastguard Worker for (char j = 0; j <= 11; j++) { 542*795d594fSAndroid Build Coastguard Worker int expected = 0; 543*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 544*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 545*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareByteChar(i, j)); 546*795d594fSAndroid Build Coastguard Worker } 547*795d594fSAndroid Build Coastguard Worker } 548*795d594fSAndroid Build Coastguard Worker } 549*795d594fSAndroid Build Coastguard Worker testCompareByteInt()550*795d594fSAndroid Build Coastguard Worker public static void testCompareByteInt() { 551*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteInt(Byte.MIN_VALUE, -1)); 552*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteInt(Byte.MIN_VALUE, 0)); 553*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteInt(Byte.MIN_VALUE, 1)); 554*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteInt(Byte.MIN_VALUE, Integer.MAX_VALUE)); 555*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteInt((byte)-1, 0)); 556*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteInt((byte)-1, 1)); 557*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteInt((byte)0, 1)); 558*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteInt(Byte.MAX_VALUE, Integer.MAX_VALUE - 1)); 559*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareByteInt(Byte.MAX_VALUE, Integer.MAX_VALUE)); 560*795d594fSAndroid Build Coastguard Worker 561*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareByteInt((byte)-1, -1)); 562*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareByteInt((byte)0, 0)); 563*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareByteInt((byte)1, 1)); 564*795d594fSAndroid Build Coastguard Worker 565*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteInt(Byte.MIN_VALUE, Integer.MIN_VALUE)); 566*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteInt(Byte.MIN_VALUE, Integer.MIN_VALUE + 1)); 567*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteInt((byte)0, -1)); 568*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteInt((byte)1, -1)); 569*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteInt((byte)1, 0)); 570*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteInt(Byte.MAX_VALUE, Integer.MIN_VALUE)); 571*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteInt(Byte.MAX_VALUE, -1)); 572*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteInt(Byte.MAX_VALUE, 0)); 573*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareByteInt(Byte.MAX_VALUE, 1)); 574*795d594fSAndroid Build Coastguard Worker 575*795d594fSAndroid Build Coastguard Worker for (byte i = -11; i <= 11; i++) { 576*795d594fSAndroid Build Coastguard Worker for (int j = -11; j <= 11; j++) { 577*795d594fSAndroid Build Coastguard Worker int expected = 0; 578*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 579*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 580*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareByteInt(i, j)); 581*795d594fSAndroid Build Coastguard Worker } 582*795d594fSAndroid Build Coastguard Worker } 583*795d594fSAndroid Build Coastguard Worker } 584*795d594fSAndroid Build Coastguard Worker 585*795d594fSAndroid Build Coastguard Worker testCompareShortByte()586*795d594fSAndroid Build Coastguard Worker public static void testCompareShortByte() { 587*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortByte(Short.MIN_VALUE, Byte.MIN_VALUE)); 588*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortByte(Short.MIN_VALUE, (byte)(Byte.MIN_VALUE + 1))); 589*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortByte(Short.MIN_VALUE, (byte)-1)); 590*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortByte(Short.MIN_VALUE, (byte)0)); 591*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortByte(Short.MIN_VALUE, (byte)1)); 592*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortByte(Short.MIN_VALUE, Byte.MAX_VALUE)); 593*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortByte((short)-1, (byte)0)); 594*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortByte((short)-1, (byte)1)); 595*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortByte((short)0, (byte)1)); 596*795d594fSAndroid Build Coastguard Worker 597*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShortByte((short)-1, (byte)-1)); 598*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShortByte((short)0, (byte)0)); 599*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShortByte((short)1, (byte)1)); 600*795d594fSAndroid Build Coastguard Worker 601*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortByte((short)0, (byte)-1)); 602*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortByte((short)1, (byte)-1)); 603*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortByte((short)1, (byte)0)); 604*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortByte(Short.MAX_VALUE, Byte.MIN_VALUE)); 605*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortByte(Short.MAX_VALUE, (byte)-1)); 606*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortByte(Short.MAX_VALUE, (byte)0)); 607*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortByte(Short.MAX_VALUE, (byte)1)); 608*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortByte(Short.MAX_VALUE, (byte)(Byte.MAX_VALUE - 1))); 609*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortByte(Short.MAX_VALUE, Byte.MAX_VALUE)); 610*795d594fSAndroid Build Coastguard Worker 611*795d594fSAndroid Build Coastguard Worker for (short i = -11; i <= 11; i++) { 612*795d594fSAndroid Build Coastguard Worker for (byte j = -11; j <= 11; j++) { 613*795d594fSAndroid Build Coastguard Worker int expected = 0; 614*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 615*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 616*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareShortByte(i, j)); 617*795d594fSAndroid Build Coastguard Worker } 618*795d594fSAndroid Build Coastguard Worker } 619*795d594fSAndroid Build Coastguard Worker } 620*795d594fSAndroid Build Coastguard Worker testCompareShortChar()621*795d594fSAndroid Build Coastguard Worker public static void testCompareShortChar() { 622*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortChar(Short.MIN_VALUE, (char)0)); 623*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortChar(Short.MIN_VALUE, (char)1)); 624*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortChar(Short.MIN_VALUE, Character.MAX_VALUE)); 625*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortChar((short)-1, (char)0)); 626*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortChar((short)-1, (char)1)); 627*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortChar((short)0, (char)1)); 628*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortChar(Short.MAX_VALUE, (char)(Character.MAX_VALUE - 1))); 629*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortChar(Short.MAX_VALUE, Character.MAX_VALUE)); 630*795d594fSAndroid Build Coastguard Worker 631*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShortChar((short)0, (char)0)); 632*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShortChar((short)1, (char)1)); 633*795d594fSAndroid Build Coastguard Worker 634*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortChar((short)1, (char)0)); 635*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortChar(Short.MAX_VALUE, (char)0)); 636*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortChar(Short.MAX_VALUE, (char)1)); 637*795d594fSAndroid Build Coastguard Worker 638*795d594fSAndroid Build Coastguard Worker for (short i = -11; i <= 11; i++) { 639*795d594fSAndroid Build Coastguard Worker for (char j = 0; j <= 11; j++) { 640*795d594fSAndroid Build Coastguard Worker int expected = 0; 641*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 642*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 643*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareShortChar(i, j)); 644*795d594fSAndroid Build Coastguard Worker } 645*795d594fSAndroid Build Coastguard Worker } 646*795d594fSAndroid Build Coastguard Worker } 647*795d594fSAndroid Build Coastguard Worker testCompareShortInt()648*795d594fSAndroid Build Coastguard Worker public static void testCompareShortInt() { 649*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortInt(Short.MIN_VALUE, -1)); 650*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortInt(Short.MIN_VALUE, 0)); 651*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortInt(Short.MIN_VALUE, 1)); 652*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortInt(Short.MIN_VALUE, Integer.MAX_VALUE)); 653*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortInt((short)-1, 0)); 654*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortInt((short)-1, 1)); 655*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortInt((short)0, 1)); 656*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortInt(Short.MAX_VALUE, Integer.MAX_VALUE - 1)); 657*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareShortInt(Short.MAX_VALUE, Integer.MAX_VALUE)); 658*795d594fSAndroid Build Coastguard Worker 659*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShortInt((short)-1, -1)); 660*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShortInt((short)0, 0)); 661*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareShortInt((short)1, 1)); 662*795d594fSAndroid Build Coastguard Worker 663*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortInt(Short.MIN_VALUE, Integer.MIN_VALUE)); 664*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortInt(Short.MIN_VALUE, Integer.MIN_VALUE + 1)); 665*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortInt((short)0, -1)); 666*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortInt((short)1, -1)); 667*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortInt((short)1, 0)); 668*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortInt(Short.MAX_VALUE, Integer.MIN_VALUE)); 669*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortInt(Short.MAX_VALUE, -1)); 670*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortInt(Short.MAX_VALUE, 0)); 671*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareShortInt(Short.MAX_VALUE, 1)); 672*795d594fSAndroid Build Coastguard Worker 673*795d594fSAndroid Build Coastguard Worker for (short i = -11; i <= 11; i++) { 674*795d594fSAndroid Build Coastguard Worker for (int j = -11; j <= 11; j++) { 675*795d594fSAndroid Build Coastguard Worker int expected = 0; 676*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 677*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 678*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareShortInt(i, j)); 679*795d594fSAndroid Build Coastguard Worker } 680*795d594fSAndroid Build Coastguard Worker } 681*795d594fSAndroid Build Coastguard Worker } 682*795d594fSAndroid Build Coastguard Worker 683*795d594fSAndroid Build Coastguard Worker testCompareCharByte()684*795d594fSAndroid Build Coastguard Worker public static void testCompareCharByte() { 685*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareCharByte((char)0, (byte)1)); 686*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareCharByte((char)0, Byte.MAX_VALUE)); 687*795d594fSAndroid Build Coastguard Worker 688*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareCharByte((char)0, (byte)0)); 689*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareCharByte((char)1, (byte)1)); 690*795d594fSAndroid Build Coastguard Worker 691*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte((char)0, Byte.MIN_VALUE)); 692*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte((char)0, (byte)(Byte.MIN_VALUE + 1))); 693*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte((char)0, (byte)-1)); 694*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte((char)1, (byte)-1)); 695*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte((char)1, (byte)0)); 696*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte(Character.MAX_VALUE, Byte.MIN_VALUE)); 697*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte(Character.MAX_VALUE, (byte)-1)); 698*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte(Character.MAX_VALUE, (byte)0)); 699*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte(Character.MAX_VALUE, (byte)1)); 700*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte(Character.MAX_VALUE, (byte)(Byte.MAX_VALUE - 1))); 701*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharByte(Character.MAX_VALUE, Byte.MAX_VALUE)); 702*795d594fSAndroid Build Coastguard Worker 703*795d594fSAndroid Build Coastguard Worker for (char i = 0; i <= 11; i++) { 704*795d594fSAndroid Build Coastguard Worker for (byte j = -11; j <= 11; j++) { 705*795d594fSAndroid Build Coastguard Worker int expected = 0; 706*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 707*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 708*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareCharByte(i, j)); 709*795d594fSAndroid Build Coastguard Worker } 710*795d594fSAndroid Build Coastguard Worker } 711*795d594fSAndroid Build Coastguard Worker } 712*795d594fSAndroid Build Coastguard Worker testCompareCharShort()713*795d594fSAndroid Build Coastguard Worker public static void testCompareCharShort() { 714*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareCharShort((char)0, (short)1)); 715*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareCharShort((char)0, Short.MAX_VALUE)); 716*795d594fSAndroid Build Coastguard Worker 717*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareCharShort((char)0, (short)0)); 718*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareCharShort((char)1, (short)1)); 719*795d594fSAndroid Build Coastguard Worker 720*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort((char)0, Short.MIN_VALUE)); 721*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort((char)0, (short)(Short.MIN_VALUE + 1))); 722*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort((char)0, (short)-1)); 723*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort((char)1, (short)-1)); 724*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort((char)1, (short)0)); 725*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort(Character.MAX_VALUE, Short.MIN_VALUE)); 726*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort(Character.MAX_VALUE, (short)-1)); 727*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort(Character.MAX_VALUE, (short)0)); 728*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort(Character.MAX_VALUE, (short)1)); 729*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort(Character.MAX_VALUE, (short)(Short.MAX_VALUE - 1))); 730*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharShort(Character.MAX_VALUE, Short.MAX_VALUE)); 731*795d594fSAndroid Build Coastguard Worker 732*795d594fSAndroid Build Coastguard Worker for (char i = 0; i <= 11; i++) { 733*795d594fSAndroid Build Coastguard Worker for (short j = -11; j <= 11; j++) { 734*795d594fSAndroid Build Coastguard Worker int expected = 0; 735*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 736*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 737*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareCharShort(i, j)); 738*795d594fSAndroid Build Coastguard Worker } 739*795d594fSAndroid Build Coastguard Worker } 740*795d594fSAndroid Build Coastguard Worker } 741*795d594fSAndroid Build Coastguard Worker testCompareCharInt()742*795d594fSAndroid Build Coastguard Worker public static void testCompareCharInt() { 743*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareCharInt((char)0, 1)); 744*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareCharInt((char)0, Integer.MAX_VALUE)); 745*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareCharInt(Character.MAX_VALUE, Integer.MAX_VALUE - 1)); 746*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareCharInt(Character.MAX_VALUE, Integer.MAX_VALUE)); 747*795d594fSAndroid Build Coastguard Worker 748*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareCharInt((char)0, 0)); 749*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareCharInt((char)1, 1)); 750*795d594fSAndroid Build Coastguard Worker 751*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharInt((char)0, Integer.MIN_VALUE)); 752*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharInt((char)0, Integer.MIN_VALUE + 1)); 753*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharInt((char)0, -1)); 754*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharInt((char)1, -1)); 755*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharInt((char)1, 0)); 756*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharInt(Character.MAX_VALUE, Integer.MIN_VALUE)); 757*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharInt(Character.MAX_VALUE, -1)); 758*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharInt(Character.MAX_VALUE, 0)); 759*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareCharInt(Character.MAX_VALUE, 1)); 760*795d594fSAndroid Build Coastguard Worker 761*795d594fSAndroid Build Coastguard Worker for (char i = 0; i <= 11; i++) { 762*795d594fSAndroid Build Coastguard Worker for (int j = -11; j <= 11; j++) { 763*795d594fSAndroid Build Coastguard Worker int expected = 0; 764*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 765*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 766*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareCharInt(i, j)); 767*795d594fSAndroid Build Coastguard Worker } 768*795d594fSAndroid Build Coastguard Worker } 769*795d594fSAndroid Build Coastguard Worker } 770*795d594fSAndroid Build Coastguard Worker 771*795d594fSAndroid Build Coastguard Worker testCompareIntByte()772*795d594fSAndroid Build Coastguard Worker public static void testCompareIntByte() { 773*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntByte(Integer.MIN_VALUE, Byte.MIN_VALUE)); 774*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntByte(Integer.MIN_VALUE, (byte)(Byte.MIN_VALUE + 1))); 775*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntByte(Integer.MIN_VALUE, (byte)-1)); 776*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntByte(Integer.MIN_VALUE, (byte)0)); 777*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntByte(Integer.MIN_VALUE, (byte)1)); 778*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntByte(Integer.MIN_VALUE, Byte.MAX_VALUE)); 779*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntByte(-1, (byte)0)); 780*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntByte(-1, (byte)1)); 781*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntByte(0, (byte)1)); 782*795d594fSAndroid Build Coastguard Worker 783*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareIntByte(-1, (byte)-1)); 784*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareIntByte(0, (byte)0)); 785*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareIntByte(1, (byte)1)); 786*795d594fSAndroid Build Coastguard Worker 787*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntByte(0, (byte)-1)); 788*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntByte(1, (byte)-1)); 789*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntByte(1, (byte)0)); 790*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntByte(Integer.MAX_VALUE, Byte.MIN_VALUE)); 791*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntByte(Integer.MAX_VALUE, (byte)-1)); 792*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntByte(Integer.MAX_VALUE, (byte)0)); 793*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntByte(Integer.MAX_VALUE, (byte)1)); 794*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntByte(Integer.MAX_VALUE, (byte)(Byte.MAX_VALUE - 1))); 795*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntByte(Integer.MAX_VALUE, Byte.MAX_VALUE)); 796*795d594fSAndroid Build Coastguard Worker 797*795d594fSAndroid Build Coastguard Worker for (int i = -11; i <= 11; i++) { 798*795d594fSAndroid Build Coastguard Worker for (byte j = -11; j <= 11; j++) { 799*795d594fSAndroid Build Coastguard Worker int expected = 0; 800*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 801*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 802*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareIntByte(i, j)); 803*795d594fSAndroid Build Coastguard Worker } 804*795d594fSAndroid Build Coastguard Worker } 805*795d594fSAndroid Build Coastguard Worker } 806*795d594fSAndroid Build Coastguard Worker testCompareIntShort()807*795d594fSAndroid Build Coastguard Worker public static void testCompareIntShort() { 808*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntShort(Integer.MIN_VALUE, Short.MIN_VALUE)); 809*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntShort(Integer.MIN_VALUE, (short)(Short.MIN_VALUE + 1))); 810*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntShort(Integer.MIN_VALUE, (short)-1)); 811*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntShort(Integer.MIN_VALUE, (short)0)); 812*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntShort(Integer.MIN_VALUE, (short)1)); 813*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntShort(Integer.MIN_VALUE, Short.MAX_VALUE)); 814*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntShort(-1, (short)0)); 815*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntShort(-1, (short)1)); 816*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntShort(0, (short)1)); 817*795d594fSAndroid Build Coastguard Worker 818*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareIntShort(-1, (short)-1)); 819*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareIntShort(0, (short)0)); 820*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareIntShort(1, (short)1)); 821*795d594fSAndroid Build Coastguard Worker 822*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntShort(0, (short)-1)); 823*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntShort(1, (short)-1)); 824*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntShort(1, (short)0)); 825*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntShort(Integer.MAX_VALUE, Short.MIN_VALUE)); 826*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntShort(Integer.MAX_VALUE, (short)-1)); 827*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntShort(Integer.MAX_VALUE, (short)0)); 828*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntShort(Integer.MAX_VALUE, (short)1)); 829*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntShort(Integer.MAX_VALUE, (short)(Short.MAX_VALUE - 1))); 830*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntShort(Integer.MAX_VALUE, Short.MAX_VALUE)); 831*795d594fSAndroid Build Coastguard Worker 832*795d594fSAndroid Build Coastguard Worker for (int i = -11; i <= 11; i++) { 833*795d594fSAndroid Build Coastguard Worker for (short j = -11; j <= 11; j++) { 834*795d594fSAndroid Build Coastguard Worker int expected = 0; 835*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 836*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 837*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareIntShort(i, j)); 838*795d594fSAndroid Build Coastguard Worker } 839*795d594fSAndroid Build Coastguard Worker } 840*795d594fSAndroid Build Coastguard Worker } 841*795d594fSAndroid Build Coastguard Worker testCompareIntChar()842*795d594fSAndroid Build Coastguard Worker public static void testCompareIntChar() { 843*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntChar(Integer.MIN_VALUE, (char)0)); 844*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntChar(Integer.MIN_VALUE, (char)1)); 845*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntChar(Integer.MIN_VALUE, Character.MAX_VALUE)); 846*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntChar(-1, (char)0)); 847*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntChar(-1, (char)1)); 848*795d594fSAndroid Build Coastguard Worker expectEquals(-1, compareIntChar(0, (char)1)); 849*795d594fSAndroid Build Coastguard Worker 850*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareIntChar(0, (char)0)); 851*795d594fSAndroid Build Coastguard Worker expectEquals(0, compareIntChar(1, (char)1)); 852*795d594fSAndroid Build Coastguard Worker 853*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntChar(1, (char)0)); 854*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntChar(Integer.MAX_VALUE, (char)0)); 855*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntChar(Integer.MAX_VALUE, (char)1)); 856*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntChar(Integer.MAX_VALUE, (char)(Character.MAX_VALUE - 1))); 857*795d594fSAndroid Build Coastguard Worker expectEquals(1, compareIntChar(Integer.MAX_VALUE, Character.MAX_VALUE)); 858*795d594fSAndroid Build Coastguard Worker 859*795d594fSAndroid Build Coastguard Worker for (int i = -11; i <= 11; i++) { 860*795d594fSAndroid Build Coastguard Worker for (char j = 0; j <= 11; j++) { 861*795d594fSAndroid Build Coastguard Worker int expected = 0; 862*795d594fSAndroid Build Coastguard Worker if (i < j) expected = -1; 863*795d594fSAndroid Build Coastguard Worker else if (i > j) expected = 1; 864*795d594fSAndroid Build Coastguard Worker expectEquals(expected, compareIntChar(i, j)); 865*795d594fSAndroid Build Coastguard Worker } 866*795d594fSAndroid Build Coastguard Worker } 867*795d594fSAndroid Build Coastguard Worker } 868*795d594fSAndroid Build Coastguard Worker 869*795d594fSAndroid Build Coastguard Worker main()870*795d594fSAndroid Build Coastguard Worker public static void main() { 871*795d594fSAndroid Build Coastguard Worker $opt$noinline$testReplaceInputWithItself(42); 872*795d594fSAndroid Build Coastguard Worker 873*795d594fSAndroid Build Coastguard Worker testCompareBooleans(); 874*795d594fSAndroid Build Coastguard Worker testCompareBytes(); 875*795d594fSAndroid Build Coastguard Worker testCompareShorts(); 876*795d594fSAndroid Build Coastguard Worker testCompareChars(); 877*795d594fSAndroid Build Coastguard Worker testCompareInts(); 878*795d594fSAndroid Build Coastguard Worker testCompareLongs(); 879*795d594fSAndroid Build Coastguard Worker 880*795d594fSAndroid Build Coastguard Worker testCompareByteShort(); 881*795d594fSAndroid Build Coastguard Worker testCompareByteChar(); 882*795d594fSAndroid Build Coastguard Worker testCompareByteInt(); 883*795d594fSAndroid Build Coastguard Worker 884*795d594fSAndroid Build Coastguard Worker testCompareShortByte(); 885*795d594fSAndroid Build Coastguard Worker testCompareShortChar(); 886*795d594fSAndroid Build Coastguard Worker testCompareShortInt(); 887*795d594fSAndroid Build Coastguard Worker 888*795d594fSAndroid Build Coastguard Worker testCompareCharByte(); 889*795d594fSAndroid Build Coastguard Worker testCompareCharShort(); 890*795d594fSAndroid Build Coastguard Worker testCompareCharInt(); 891*795d594fSAndroid Build Coastguard Worker 892*795d594fSAndroid Build Coastguard Worker testCompareIntByte(); 893*795d594fSAndroid Build Coastguard Worker testCompareIntShort(); 894*795d594fSAndroid Build Coastguard Worker testCompareIntChar(); 895*795d594fSAndroid Build Coastguard Worker 896*795d594fSAndroid Build Coastguard Worker System.out.println("TestCompare passed"); 897*795d594fSAndroid Build Coastguard Worker } 898*795d594fSAndroid Build Coastguard Worker expectEquals(int expected, int result)899*795d594fSAndroid Build Coastguard Worker private static void expectEquals(int expected, int result) { 900*795d594fSAndroid Build Coastguard Worker if (expected != result) { 901*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + expected + ", found: " + result); 902*795d594fSAndroid Build Coastguard Worker } 903*795d594fSAndroid Build Coastguard Worker } 904*795d594fSAndroid Build Coastguard Worker } 905