1 /* 2 * Copyright (C) 2012 The Guava Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.common.math; 18 19 import com.google.common.annotations.GwtCompatible; 20 21 import junit.framework.TestCase; 22 23 import java.math.BigInteger; 24 25 /** 26 * Unit tests for {@link MathPreconditions}. 27 * 28 * @author Ben Yu 29 */ 30 @GwtCompatible 31 public class MathPreconditionsTest extends TestCase { 32 testCheckPositive_zeroInt()33 public void testCheckPositive_zeroInt() { 34 try { 35 MathPreconditions.checkPositive("int", 0); 36 fail(); 37 } catch (IllegalArgumentException expected) {} 38 } 39 testCheckPositive_maxInt()40 public void testCheckPositive_maxInt() { 41 MathPreconditions.checkPositive("int", Integer.MAX_VALUE); 42 } 43 testCheckPositive_minInt()44 public void testCheckPositive_minInt() { 45 try { 46 MathPreconditions.checkPositive("int", Integer.MIN_VALUE); 47 fail(); 48 } catch (IllegalArgumentException expected) {} 49 } 50 testCheckPositive_positiveInt()51 public void testCheckPositive_positiveInt() { 52 MathPreconditions.checkPositive("int", 1); 53 } 54 testCheckPositive_negativeInt()55 public void testCheckPositive_negativeInt() { 56 try { 57 MathPreconditions.checkPositive("int", -1); 58 fail(); 59 } catch (IllegalArgumentException expected) {} 60 } 61 testCheckPositive_zeroLong()62 public void testCheckPositive_zeroLong() { 63 try { 64 MathPreconditions.checkPositive("long", 0L); 65 fail(); 66 } catch (IllegalArgumentException expected) {} 67 } 68 testCheckPositive_maxLong()69 public void testCheckPositive_maxLong() { 70 MathPreconditions.checkPositive("long", Long.MAX_VALUE); 71 } 72 testCheckPositive_minLong()73 public void testCheckPositive_minLong() { 74 try { 75 MathPreconditions.checkPositive("long", Long.MIN_VALUE); 76 fail(); 77 } catch (IllegalArgumentException expected) {} 78 } 79 testCheckPositive_positiveLong()80 public void testCheckPositive_positiveLong() { 81 MathPreconditions.checkPositive("long", 1); 82 } 83 testCheckPositive_negativeLong()84 public void testCheckPositive_negativeLong() { 85 try { 86 MathPreconditions.checkPositive("long", -1L); 87 fail(); 88 } catch (IllegalArgumentException expected) {} 89 } 90 testCheckPositive_zeroBigInteger()91 public void testCheckPositive_zeroBigInteger() { 92 try { 93 MathPreconditions.checkPositive("BigInteger", BigInteger.ZERO); 94 fail(); 95 } catch (IllegalArgumentException expected) {} 96 } 97 testCheckPositive_postiveBigInteger()98 public void testCheckPositive_postiveBigInteger() { 99 MathPreconditions.checkPositive("BigInteger", BigInteger.ONE); 100 } 101 testCheckPositive_negativeBigInteger()102 public void testCheckPositive_negativeBigInteger() { 103 try { 104 MathPreconditions.checkPositive("BigInteger", BigInteger.ZERO.negate()); 105 fail(); 106 } catch (IllegalArgumentException expected) {} 107 } 108 testCheckNonNegative_zeroInt()109 public void testCheckNonNegative_zeroInt() { 110 MathPreconditions.checkNonNegative("int", 0); 111 } 112 testCheckNonNegative_maxInt()113 public void testCheckNonNegative_maxInt() { 114 MathPreconditions.checkNonNegative("int", Integer.MAX_VALUE); 115 } 116 testCheckNonNegative_minInt()117 public void testCheckNonNegative_minInt() { 118 try { 119 MathPreconditions.checkNonNegative("int", Integer.MIN_VALUE); 120 fail(); 121 } catch (IllegalArgumentException expected) {} 122 } 123 testCheckNonNegative_positiveInt()124 public void testCheckNonNegative_positiveInt() { 125 MathPreconditions.checkNonNegative("int", 1); 126 } 127 testCheckNonNegative_negativeInt()128 public void testCheckNonNegative_negativeInt() { 129 try { 130 MathPreconditions.checkNonNegative("int", -1); 131 fail(); 132 } catch (IllegalArgumentException expected) {} 133 } 134 testCheckNonNegative_zeroLong()135 public void testCheckNonNegative_zeroLong() { 136 MathPreconditions.checkNonNegative("long", 0L); 137 } 138 testCheckNonNegative_maxLong()139 public void testCheckNonNegative_maxLong() { 140 MathPreconditions.checkNonNegative("long", Long.MAX_VALUE); 141 } 142 testCheckNonNegative_minLong()143 public void testCheckNonNegative_minLong() { 144 try { 145 MathPreconditions.checkNonNegative("long", Long.MIN_VALUE); 146 fail(); 147 } catch (IllegalArgumentException expected) {} 148 } 149 testCheckNonNegative_positiveLong()150 public void testCheckNonNegative_positiveLong() { 151 MathPreconditions.checkNonNegative("long", 1L); 152 } 153 testCheckNonNegative_negativeLong()154 public void testCheckNonNegative_negativeLong() { 155 try { 156 MathPreconditions.checkNonNegative("int", -1L); 157 fail(); 158 } catch (IllegalArgumentException expected) {} 159 } 160 testCheckNonNegative_zeroBigInteger()161 public void testCheckNonNegative_zeroBigInteger() { 162 MathPreconditions.checkNonNegative("BigInteger", BigInteger.ZERO); 163 } 164 testCheckNonNegative_positiveBigInteger()165 public void testCheckNonNegative_positiveBigInteger() { 166 MathPreconditions.checkNonNegative("BigInteger", BigInteger.ONE); 167 } 168 testCheckNonNegative_negativeBigInteger()169 public void testCheckNonNegative_negativeBigInteger() { 170 try { 171 MathPreconditions.checkNonNegative("int", BigInteger.ONE.negate()); 172 fail(); 173 } catch (IllegalArgumentException expected) {} 174 } 175 testCheckNonNegative_zeroFloat()176 public void testCheckNonNegative_zeroFloat() { 177 MathPreconditions.checkNonNegative("float", 0f); 178 } 179 testCheckNonNegative_maxFloat()180 public void testCheckNonNegative_maxFloat() { 181 MathPreconditions.checkNonNegative("float", Float.MAX_VALUE); 182 } 183 testCheckNonNegative_minFloat()184 public void testCheckNonNegative_minFloat() { 185 MathPreconditions.checkNonNegative("float", Float.MIN_VALUE); 186 } 187 testCheckNonNegative_positiveFloat()188 public void testCheckNonNegative_positiveFloat() { 189 MathPreconditions.checkNonNegative("float", 1f); 190 } 191 testCheckNonNegative_negativeFloat()192 public void testCheckNonNegative_negativeFloat() { 193 try { 194 MathPreconditions.checkNonNegative("float", -1f); 195 fail(); 196 } catch (IllegalArgumentException expected) {} 197 } 198 testCheckNonNegative_nanFloat()199 public void testCheckNonNegative_nanFloat() { 200 try { 201 MathPreconditions.checkNonNegative("float", Float.NaN); 202 fail(); 203 } catch (IllegalArgumentException expected) {} 204 } 205 testCheckNonNegative_zeroDouble()206 public void testCheckNonNegative_zeroDouble() { 207 MathPreconditions.checkNonNegative("double", 0d); 208 } 209 testCheckNonNegative_maxDouble()210 public void testCheckNonNegative_maxDouble() { 211 MathPreconditions.checkNonNegative("double", Double.MAX_VALUE); 212 } 213 testCheckNonNegative_minDouble()214 public void testCheckNonNegative_minDouble() { 215 MathPreconditions.checkNonNegative("double", Double.MIN_VALUE); 216 } 217 testCheckNonNegative_positiveDouble()218 public void testCheckNonNegative_positiveDouble() { 219 MathPreconditions.checkNonNegative("double", 1d); 220 } 221 testCheckNonNegative_negativeDouble()222 public void testCheckNonNegative_negativeDouble() { 223 try { 224 MathPreconditions.checkNonNegative("double", -1d); 225 fail(); 226 } catch (IllegalArgumentException expected) {} 227 } 228 testCheckNonNegative_nanDouble()229 public void testCheckNonNegative_nanDouble() { 230 try { 231 MathPreconditions.checkNonNegative("double", Double.NaN); 232 fail(); 233 } catch (IllegalArgumentException expected) {} 234 } 235 testCheckRoundingUnnnecessary_success()236 public void testCheckRoundingUnnnecessary_success() { 237 MathPreconditions.checkRoundingUnnecessary(true); 238 } 239 testCheckRoundingUnnecessary_failure()240 public void testCheckRoundingUnnecessary_failure() { 241 try { 242 MathPreconditions.checkRoundingUnnecessary(false); 243 fail(); 244 } catch (ArithmeticException expected) {} 245 } 246 testCheckInRange_success()247 public void testCheckInRange_success() { 248 MathPreconditions.checkInRange(true); 249 } 250 testCheckInRange_failure()251 public void testCheckInRange_failure() { 252 try { 253 MathPreconditions.checkInRange(false); 254 fail(); 255 } catch (ArithmeticException expected) {} 256 } 257 testCheckNoOverflow_success()258 public void testCheckNoOverflow_success() { 259 MathPreconditions.checkNoOverflow(true); 260 } 261 testCheckNoOverflow_failure()262 public void testCheckNoOverflow_failure() { 263 try { 264 MathPreconditions.checkNoOverflow(false); 265 fail(); 266 } catch (ArithmeticException expected) {} 267 } 268 } 269