1*795d594fSAndroid Build Coastguard Worker /* 2*795d594fSAndroid Build Coastguard Worker * Copyright (C) 2014 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 import java.lang.reflect.Method; 18*795d594fSAndroid Build Coastguard Worker 19*795d594fSAndroid Build Coastguard Worker public class Main { 20*795d594fSAndroid Build Coastguard Worker main(String[] args)21*795d594fSAndroid Build Coastguard Worker public static void main(String[] args) throws Exception { 22*795d594fSAndroid Build Coastguard Worker cmpLong(); 23*795d594fSAndroid Build Coastguard Worker cmpFloat(); 24*795d594fSAndroid Build Coastguard Worker cmpDouble(); 25*795d594fSAndroid Build Coastguard Worker } 26*795d594fSAndroid Build Coastguard Worker cmpLong()27*795d594fSAndroid Build Coastguard Worker private static void cmpLong() throws Exception { 28*795d594fSAndroid Build Coastguard Worker expectLt(3L, 5L); 29*795d594fSAndroid Build Coastguard Worker expectGt(5L, 3L); 30*795d594fSAndroid Build Coastguard Worker expectLt(Long.MIN_VALUE, Long.MAX_VALUE); 31*795d594fSAndroid Build Coastguard Worker expectGt(Long.MAX_VALUE, Long.MIN_VALUE); 32*795d594fSAndroid Build Coastguard Worker 33*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLong(0L, 0L)); 34*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLong(1L, 1L)); 35*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLong(1L, 2L)); 36*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpLong(2L, 1L)); 37*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLong(Long.MIN_VALUE, Long.MAX_VALUE)); 38*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpLong(Long.MAX_VALUE, Long.MIN_VALUE)); 39*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLong(Long.MIN_VALUE, Long.MIN_VALUE)); 40*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLong(Long.MAX_VALUE, Long.MAX_VALUE)); 41*795d594fSAndroid Build Coastguard Worker } 42*795d594fSAndroid Build Coastguard Worker cmpFloat()43*795d594fSAndroid Build Coastguard Worker private static void cmpFloat() throws Exception { 44*795d594fSAndroid Build Coastguard Worker expectEq(0F, 0F); 45*795d594fSAndroid Build Coastguard Worker expectEq(-0F, 0F); 46*795d594fSAndroid Build Coastguard Worker expectEq(0F, -0F); 47*795d594fSAndroid Build Coastguard Worker expectEq(-0F, -0F); 48*795d594fSAndroid Build Coastguard Worker expectLt(3.1F, 5.1F); 49*795d594fSAndroid Build Coastguard Worker expectGt(5.1F, 3.1F); 50*795d594fSAndroid Build Coastguard Worker expectLt(Float.MIN_VALUE, Float.MAX_VALUE); 51*795d594fSAndroid Build Coastguard Worker expectGt(Float.MAX_VALUE, Float.MIN_VALUE); 52*795d594fSAndroid Build Coastguard Worker expectFalse(3.1F, Float.NaN); 53*795d594fSAndroid Build Coastguard Worker expectFalse(Float.NaN, 3.1F); 54*795d594fSAndroid Build Coastguard Worker 55*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtFloat(0F, 0F)); 56*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtFloat(-0F, 0F)); 57*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtFloat(0F, -0F)); 58*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtFloat(-0F, -0F)); 59*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtFloat(1F, 1F)); 60*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpGtFloat(1.1F, 2.1F)); 61*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpGtFloat(2.1F, 1.1F)); 62*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpGtFloat(Float.MIN_VALUE, Float.MAX_VALUE)); 63*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpGtFloat(Float.MAX_VALUE, Float.MIN_VALUE)); 64*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtFloat(Float.MIN_VALUE, Float.MIN_VALUE)); 65*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtFloat(Float.MAX_VALUE, Float.MAX_VALUE)); 66*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpGtFloat(5F, Float.NaN)); 67*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpGtFloat(Float.NaN, 5F)); 68*795d594fSAndroid Build Coastguard Worker 69*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtFloat(0F, 0F)); 70*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtFloat(-0F, 0F)); 71*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtFloat(0F, -0F)); 72*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtFloat(-0F, -0F)); 73*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtFloat(1F, 1F)); 74*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLtFloat(1.1F, 2.1F)); 75*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpLtFloat(2.1F, 1.1F)); 76*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLtFloat(Float.MIN_VALUE, Float.MAX_VALUE)); 77*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpLtFloat(Float.MAX_VALUE, Float.MIN_VALUE)); 78*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtFloat(Float.MIN_VALUE, Float.MIN_VALUE)); 79*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtFloat(Float.MAX_VALUE, Float.MAX_VALUE)); 80*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLtFloat(5F, Float.NaN)); 81*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLtFloat(Float.NaN, 5F)); 82*795d594fSAndroid Build Coastguard Worker } 83*795d594fSAndroid Build Coastguard Worker cmpDouble()84*795d594fSAndroid Build Coastguard Worker private static void cmpDouble() throws Exception { 85*795d594fSAndroid Build Coastguard Worker expectEq(0D, 0D); 86*795d594fSAndroid Build Coastguard Worker expectEq(-0D, 0D); 87*795d594fSAndroid Build Coastguard Worker expectEq(0D, -0D); 88*795d594fSAndroid Build Coastguard Worker expectEq(-0D, -0D); 89*795d594fSAndroid Build Coastguard Worker expectLt(3.1D, 5.1D); 90*795d594fSAndroid Build Coastguard Worker expectGt(5.1D, 3.1D); 91*795d594fSAndroid Build Coastguard Worker expectLt(Double.MIN_VALUE, Double.MAX_VALUE); 92*795d594fSAndroid Build Coastguard Worker expectGt(Double.MAX_VALUE, Double.MIN_VALUE); 93*795d594fSAndroid Build Coastguard Worker expectFalse(3.1D, Double.NaN); 94*795d594fSAndroid Build Coastguard Worker expectFalse(Double.NaN, 3.1D); 95*795d594fSAndroid Build Coastguard Worker 96*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtDouble(0D, 0D)); 97*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtDouble(-0D, 0D)); 98*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtDouble(0D, -0D)); 99*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtDouble(-0D, -0D)); 100*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtDouble(1D, 1D)); 101*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpGtDouble(1.1D, 2.1D)); 102*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpGtDouble(2.1D, 1.1D)); 103*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpGtDouble(Double.MIN_VALUE, Double.MAX_VALUE)); 104*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpGtDouble(Double.MAX_VALUE, Double.MIN_VALUE)); 105*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtDouble(Double.MIN_VALUE, Double.MIN_VALUE)); 106*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpGtDouble(Double.MAX_VALUE, Double.MAX_VALUE)); 107*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpGtDouble(5D, Double.NaN)); 108*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpGtDouble(Double.NaN, 5D)); 109*795d594fSAndroid Build Coastguard Worker 110*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtDouble(0D, 0D)); 111*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtDouble(-0D, 0D)); 112*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtDouble(0D, -0D)); 113*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtDouble(-0D, -0D)); 114*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtDouble(1D, 1D)); 115*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLtDouble(1.1D, 2.1D)); 116*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpLtDouble(2.1D, 1.1D)); 117*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLtDouble(Double.MIN_VALUE, Double.MAX_VALUE)); 118*795d594fSAndroid Build Coastguard Worker expectEquals(1, smaliCmpLtDouble(Double.MAX_VALUE, Double.MIN_VALUE)); 119*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtDouble(Double.MIN_VALUE, Double.MIN_VALUE)); 120*795d594fSAndroid Build Coastguard Worker expectEquals(0, smaliCmpLtDouble(Double.MAX_VALUE, Double.MAX_VALUE)); 121*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLtDouble(5D, Double.NaN)); 122*795d594fSAndroid Build Coastguard Worker expectEquals(-1, smaliCmpLtDouble(Float.NaN, 5D)); 123*795d594fSAndroid Build Coastguard Worker } 124*795d594fSAndroid Build Coastguard Worker $opt$eq(float a, float b)125*795d594fSAndroid Build Coastguard Worker static boolean $opt$eq(float a, float b) { 126*795d594fSAndroid Build Coastguard Worker return a == b; 127*795d594fSAndroid Build Coastguard Worker } 128*795d594fSAndroid Build Coastguard Worker $opt$eq(double a, double b)129*795d594fSAndroid Build Coastguard Worker static boolean $opt$eq(double a, double b) { 130*795d594fSAndroid Build Coastguard Worker return a == b; 131*795d594fSAndroid Build Coastguard Worker } 132*795d594fSAndroid Build Coastguard Worker $opt$lt(long a, long b)133*795d594fSAndroid Build Coastguard Worker static boolean $opt$lt(long a, long b) { 134*795d594fSAndroid Build Coastguard Worker return a < b; 135*795d594fSAndroid Build Coastguard Worker } 136*795d594fSAndroid Build Coastguard Worker $opt$lt(float a, float b)137*795d594fSAndroid Build Coastguard Worker static boolean $opt$lt(float a, float b) { 138*795d594fSAndroid Build Coastguard Worker return a < b; 139*795d594fSAndroid Build Coastguard Worker } 140*795d594fSAndroid Build Coastguard Worker $opt$lt(double a, double b)141*795d594fSAndroid Build Coastguard Worker static boolean $opt$lt(double a, double b) { 142*795d594fSAndroid Build Coastguard Worker return a < b; 143*795d594fSAndroid Build Coastguard Worker } 144*795d594fSAndroid Build Coastguard Worker $opt$gt(long a, long b)145*795d594fSAndroid Build Coastguard Worker static boolean $opt$gt(long a, long b) { 146*795d594fSAndroid Build Coastguard Worker return a > b; 147*795d594fSAndroid Build Coastguard Worker } 148*795d594fSAndroid Build Coastguard Worker $opt$gt(float a, float b)149*795d594fSAndroid Build Coastguard Worker static boolean $opt$gt(float a, float b) { 150*795d594fSAndroid Build Coastguard Worker return a > b; 151*795d594fSAndroid Build Coastguard Worker } 152*795d594fSAndroid Build Coastguard Worker $opt$gt(double a, double b)153*795d594fSAndroid Build Coastguard Worker static boolean $opt$gt(double a, double b) { 154*795d594fSAndroid Build Coastguard Worker return a > b; 155*795d594fSAndroid Build Coastguard Worker } 156*795d594fSAndroid Build Coastguard Worker 157*795d594fSAndroid Build Coastguard Worker // Wrappers around methods located in file cmp.smali. 158*795d594fSAndroid Build Coastguard Worker smaliCmpLong(long a, long b)159*795d594fSAndroid Build Coastguard Worker private static int smaliCmpLong(long a, long b) throws Exception { 160*795d594fSAndroid Build Coastguard Worker Class<?> c = Class.forName("TestCmp"); 161*795d594fSAndroid Build Coastguard Worker Method m = c.getMethod("$opt$CmpLong", long.class, long.class); 162*795d594fSAndroid Build Coastguard Worker int result = (Integer)m.invoke(null, a, b); 163*795d594fSAndroid Build Coastguard Worker return result; 164*795d594fSAndroid Build Coastguard Worker } 165*795d594fSAndroid Build Coastguard Worker smaliCmpGtFloat(float a, float b)166*795d594fSAndroid Build Coastguard Worker private static int smaliCmpGtFloat(float a, float b) throws Exception { 167*795d594fSAndroid Build Coastguard Worker Class<?> c = Class.forName("TestCmp"); 168*795d594fSAndroid Build Coastguard Worker Method m = c.getMethod("$opt$CmpGtFloat", float.class, float.class); 169*795d594fSAndroid Build Coastguard Worker int result = (Integer)m.invoke(null, a, b); 170*795d594fSAndroid Build Coastguard Worker return result; 171*795d594fSAndroid Build Coastguard Worker } 172*795d594fSAndroid Build Coastguard Worker smaliCmpLtFloat(float a, float b)173*795d594fSAndroid Build Coastguard Worker private static int smaliCmpLtFloat(float a, float b) throws Exception { 174*795d594fSAndroid Build Coastguard Worker Class<?> c = Class.forName("TestCmp"); 175*795d594fSAndroid Build Coastguard Worker Method m = c.getMethod("$opt$CmpLtFloat", float.class, float.class); 176*795d594fSAndroid Build Coastguard Worker int result = (Integer)m.invoke(null, a, b); 177*795d594fSAndroid Build Coastguard Worker return result; 178*795d594fSAndroid Build Coastguard Worker } 179*795d594fSAndroid Build Coastguard Worker smaliCmpGtDouble(double a, double b)180*795d594fSAndroid Build Coastguard Worker private static int smaliCmpGtDouble(double a, double b) throws Exception { 181*795d594fSAndroid Build Coastguard Worker Class<?> c = Class.forName("TestCmp"); 182*795d594fSAndroid Build Coastguard Worker Method m = c.getMethod("$opt$CmpGtDouble", double.class, double.class); 183*795d594fSAndroid Build Coastguard Worker int result = (Integer)m.invoke(null, a, b); 184*795d594fSAndroid Build Coastguard Worker return result; 185*795d594fSAndroid Build Coastguard Worker } 186*795d594fSAndroid Build Coastguard Worker smaliCmpLtDouble(double a, double b)187*795d594fSAndroid Build Coastguard Worker private static int smaliCmpLtDouble(double a, double b) throws Exception { 188*795d594fSAndroid Build Coastguard Worker Class<?> c = Class.forName("TestCmp"); 189*795d594fSAndroid Build Coastguard Worker Method m = c.getMethod("$opt$CmpLtDouble", double.class, double.class); 190*795d594fSAndroid Build Coastguard Worker int result = (Integer)m.invoke(null, a, b); 191*795d594fSAndroid Build Coastguard Worker return result; 192*795d594fSAndroid Build Coastguard Worker } 193*795d594fSAndroid Build Coastguard Worker expectEquals(int expected, int result)194*795d594fSAndroid Build Coastguard Worker public static void expectEquals(int expected, int result) { 195*795d594fSAndroid Build Coastguard Worker if (expected != result) { 196*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + expected + ", found: " + result); 197*795d594fSAndroid Build Coastguard Worker } 198*795d594fSAndroid Build Coastguard Worker } 199*795d594fSAndroid Build Coastguard Worker expectLt(long a, long b)200*795d594fSAndroid Build Coastguard Worker public static void expectLt(long a, long b) { 201*795d594fSAndroid Build Coastguard Worker if (!$opt$lt(a, b)) { 202*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + a + " < " + b); 203*795d594fSAndroid Build Coastguard Worker } 204*795d594fSAndroid Build Coastguard Worker } 205*795d594fSAndroid Build Coastguard Worker expectGt(long a, long b)206*795d594fSAndroid Build Coastguard Worker public static void expectGt(long a, long b) { 207*795d594fSAndroid Build Coastguard Worker if (!$opt$gt(a, b)) { 208*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + a + " > " + b); 209*795d594fSAndroid Build Coastguard Worker } 210*795d594fSAndroid Build Coastguard Worker } 211*795d594fSAndroid Build Coastguard Worker expectEq(float a, float b)212*795d594fSAndroid Build Coastguard Worker public static void expectEq(float a, float b) { 213*795d594fSAndroid Build Coastguard Worker if (!$opt$eq(a, b)) { 214*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + a + " == " + b); 215*795d594fSAndroid Build Coastguard Worker } 216*795d594fSAndroid Build Coastguard Worker } 217*795d594fSAndroid Build Coastguard Worker expectLt(float a, float b)218*795d594fSAndroid Build Coastguard Worker public static void expectLt(float a, float b) { 219*795d594fSAndroid Build Coastguard Worker if (!$opt$lt(a, b)) { 220*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + a + " < " + b); 221*795d594fSAndroid Build Coastguard Worker } 222*795d594fSAndroid Build Coastguard Worker } 223*795d594fSAndroid Build Coastguard Worker expectGt(float a, float b)224*795d594fSAndroid Build Coastguard Worker public static void expectGt(float a, float b) { 225*795d594fSAndroid Build Coastguard Worker if (!$opt$gt(a, b)) { 226*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + a + " > " + b); 227*795d594fSAndroid Build Coastguard Worker } 228*795d594fSAndroid Build Coastguard Worker } 229*795d594fSAndroid Build Coastguard Worker expectFalse(float a, float b)230*795d594fSAndroid Build Coastguard Worker public static void expectFalse(float a, float b) { 231*795d594fSAndroid Build Coastguard Worker if ($opt$lt(a, b)) { 232*795d594fSAndroid Build Coastguard Worker throw new Error("Not expecting: " + a + " < " + b); 233*795d594fSAndroid Build Coastguard Worker } 234*795d594fSAndroid Build Coastguard Worker if ($opt$gt(a, b)) { 235*795d594fSAndroid Build Coastguard Worker throw new Error("Not expecting: " + a + " > " + b); 236*795d594fSAndroid Build Coastguard Worker } 237*795d594fSAndroid Build Coastguard Worker } 238*795d594fSAndroid Build Coastguard Worker expectEq(double a, double b)239*795d594fSAndroid Build Coastguard Worker public static void expectEq(double a, double b) { 240*795d594fSAndroid Build Coastguard Worker if (!$opt$eq(a, b)) { 241*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + a + " == " + b); 242*795d594fSAndroid Build Coastguard Worker } 243*795d594fSAndroid Build Coastguard Worker } 244*795d594fSAndroid Build Coastguard Worker expectLt(double a, double b)245*795d594fSAndroid Build Coastguard Worker public static void expectLt(double a, double b) { 246*795d594fSAndroid Build Coastguard Worker if (!$opt$lt(a, b)) { 247*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + a + " < " + b); 248*795d594fSAndroid Build Coastguard Worker } 249*795d594fSAndroid Build Coastguard Worker } 250*795d594fSAndroid Build Coastguard Worker expectGt(double a, double b)251*795d594fSAndroid Build Coastguard Worker public static void expectGt(double a, double b) { 252*795d594fSAndroid Build Coastguard Worker if (!$opt$gt(a, b)) { 253*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + a + " > " + b); 254*795d594fSAndroid Build Coastguard Worker } 255*795d594fSAndroid Build Coastguard Worker } 256*795d594fSAndroid Build Coastguard Worker expectFalse(double a, double b)257*795d594fSAndroid Build Coastguard Worker public static void expectFalse(double a, double b) { 258*795d594fSAndroid Build Coastguard Worker if ($opt$lt(a, b)) { 259*795d594fSAndroid Build Coastguard Worker throw new Error("Not expecting: " + a + " < " + b); 260*795d594fSAndroid Build Coastguard Worker } 261*795d594fSAndroid Build Coastguard Worker if ($opt$gt(a, b)) { 262*795d594fSAndroid Build Coastguard Worker throw new Error("Not expecting: " + a + " > " + b); 263*795d594fSAndroid Build Coastguard Worker } 264*795d594fSAndroid Build Coastguard Worker } 265*795d594fSAndroid Build Coastguard Worker 266*795d594fSAndroid Build Coastguard Worker } 267