| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 // Dart test for testing Math.min and Math.max. | 4 // Dart test for testing Math.min and Math.max. |
| 5 // VMOptions=--optimization-counter-threshold=10 | 5 // VMOptions=--optimization-counter-threshold=10 |
| 6 | 6 |
| 7 library min_max_test; | 7 library min_max_test; |
| 8 import "package:expect/expect.dart"; | 8 import "package:expect/expect.dart"; |
| 9 import 'dart:math'; | 9 import 'dart:math'; |
| 10 | 10 |
| 11 var inf = double.INFINITY; |
| 12 var nan = double.NAN; |
| 13 |
| 11 testMin() { | 14 testMin() { |
| 12 testMin1(); | 15 testMin1(); |
| 13 testMin2(); | 16 testMin2(); |
| 17 testMin3(); |
| 14 } | 18 } |
| 15 | 19 |
| 16 testMin1() { | 20 testMin1() { |
| 17 Expect.equals(0, min(0, 2)); | 21 Expect.equals(0, min(0, 2)); |
| 18 Expect.equals(0, min(2, 0)); | 22 Expect.equals(0, min(2, 0)); |
| 19 | 23 |
| 20 Expect.equals(-10, min(-10, -9)); | 24 Expect.equals(-10, min(-10, -9)); |
| 21 Expect.equals(-10, min(-10, 9)); | 25 Expect.equals(-10, min(-10, 9)); |
| 22 Expect.equals(-10, min(-10, 0)); | 26 Expect.equals(-10, min(-10, 0)); |
| 23 Expect.equals(-10, min(-9, -10)); | 27 Expect.equals(-10, min(-9, -10)); |
| 24 Expect.equals(-10, min(9, -10)); | 28 Expect.equals(-10, min(9, -10)); |
| 25 Expect.equals(-10, min(0, -10)); | 29 Expect.equals(-10, min(0, -10)); |
| 26 | 30 |
| 27 Expect.equals(0.5, min(0.5, 2.5)); | 31 Expect.equals(0.5, min(0.5, 2.5)); |
| 28 Expect.equals(0.5, min(2.5, 0.5)); | 32 Expect.equals(0.5, min(2.5, 0.5)); |
| 29 | 33 |
| 30 Expect.equals(-10.5, min(-10.5, -9.5)); | 34 Expect.equals(-10.5, min(-10.5, -9.5)); |
| 31 Expect.equals(-10.5, min(-10.5, 9.5)); | 35 Expect.equals(-10.5, min(-10.5, 9.5)); |
| 32 Expect.equals(-10.5, min(-10.5, 0.5)); | 36 Expect.equals(-10.5, min(-10.5, 0.5)); |
| 33 Expect.equals(-10.5, min(-9.5, -10.5)); | 37 Expect.equals(-10.5, min(-9.5, -10.5)); |
| 34 Expect.equals(-10.5, min(9.5, -10.5)); | 38 Expect.equals(-10.5, min(9.5, -10.5)); |
| 35 Expect.equals(-10.5, min(0.5, -10.5)); | 39 Expect.equals(-10.5, min(0.5, -10.5)); |
| 36 // Test matrix: | 40 // Test matrix: |
| 37 // NaN, -infinity, -499.0, -499, -0.0, 0.0, 0, 499.0, 499, +infinity. | 41 // NaN, -infinity, -499.0, -499, -0.0, 0.0, 0, 499.0, 499, +infinity. |
| 38 var inf = double.INFINITY; | |
| 39 var nan = double.NAN; | |
| 40 | 42 |
| 41 Expect.isTrue(min(nan, nan).isNaN); | 43 Expect.isTrue(min(nan, nan).isNaN); |
| 42 Expect.isTrue(min(nan, -inf).isNaN); | 44 Expect.isTrue(min(nan, -inf).isNaN); |
| 43 Expect.isTrue(min(nan, -499.0).isNaN); | 45 Expect.isTrue(min(nan, -499.0).isNaN); |
| 44 Expect.isTrue(min(nan, -499).isNaN); | 46 Expect.isTrue(min(nan, -499).isNaN); |
| 45 Expect.isTrue(min(nan, -0.0).isNaN); | 47 Expect.isTrue(min(nan, -0.0).isNaN); |
| 46 Expect.isTrue(min(nan, 0.0).isNaN); | 48 Expect.isTrue(min(nan, 0.0).isNaN); |
| 47 Expect.isTrue(min(nan, 499.0).isNaN); | 49 Expect.isTrue(min(nan, 499.0).isNaN); |
| 48 Expect.isTrue(min(nan, 499).isNaN); | 50 Expect.isTrue(min(nan, 499).isNaN); |
| 49 Expect.isTrue(min(nan, inf).isNaN); | 51 Expect.isTrue(min(nan, inf).isNaN); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 Expect.equals(-inf, min(-0.0, -inf)); | 104 Expect.equals(-inf, min(-0.0, -inf)); |
| 103 Expect.equals(-499.0, min(-0.0, -499.0)); | 105 Expect.equals(-499.0, min(-0.0, -499.0)); |
| 104 Expect.equals(-499, min(-0.0, -499)); | 106 Expect.equals(-499, min(-0.0, -499)); |
| 105 Expect.equals(-0.0, min(-0.0, -0.0)); | 107 Expect.equals(-0.0, min(-0.0, -0.0)); |
| 106 Expect.equals(-0.0, min(-0.0, 0.0)); | 108 Expect.equals(-0.0, min(-0.0, 0.0)); |
| 107 Expect.equals(-0.0, min(-0.0, 0)); | 109 Expect.equals(-0.0, min(-0.0, 0)); |
| 108 Expect.equals(-0.0, min(-0.0, 499.0)); | 110 Expect.equals(-0.0, min(-0.0, 499.0)); |
| 109 Expect.equals(-0.0, min(-0.0, 499)); | 111 Expect.equals(-0.0, min(-0.0, 499)); |
| 110 Expect.equals(-0.0, min(-0.0, inf)); | 112 Expect.equals(-0.0, min(-0.0, inf)); |
| 111 Expect.isTrue(min(-0.0, nan).isNaN); | 113 Expect.isTrue(min(-0.0, nan).isNaN); |
| 114 } |
| 112 | 115 |
| 116 testMin2() { |
| 113 Expect.isTrue(min(-0.0, -499.0) is double); | 117 Expect.isTrue(min(-0.0, -499.0) is double); |
| 114 Expect.isTrue(min(-0.0, -499) is int); | 118 Expect.isTrue(min(-0.0, -499) is int); |
| 115 Expect.isTrue(min(-0.0, -0.0) is double); | 119 Expect.isTrue(min(-0.0, -0.0) is double); |
| 116 Expect.isTrue(min(-0.0, 0.0) is double); | 120 Expect.isTrue(min(-0.0, 0.0) is double); |
| 117 Expect.isTrue(min(-0.0, 0) is double); | 121 Expect.isTrue(min(-0.0, 0) is double); |
| 118 Expect.isTrue(min(-0.0, 499.0) is double); | 122 Expect.isTrue(min(-0.0, 499.0) is double); |
| 119 Expect.isTrue(min(-0.0, 499) is double); | 123 Expect.isTrue(min(-0.0, 499) is double); |
| 120 Expect.isTrue(min(-0.0, inf) is double); | 124 Expect.isTrue(min(-0.0, inf) is double); |
| 121 | 125 |
| 122 Expect.isTrue(min(-0.0, -499.0).isNegative); | 126 Expect.isTrue(min(-0.0, -499.0).isNegative); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 Expect.isTrue(min(0, nan).isNaN); | 173 Expect.isTrue(min(0, nan).isNaN); |
| 170 | 174 |
| 171 Expect.isTrue(min(0, -499.0) is double); | 175 Expect.isTrue(min(0, -499.0) is double); |
| 172 Expect.isTrue(min(0, -499) is int); | 176 Expect.isTrue(min(0, -499) is int); |
| 173 Expect.isTrue(min(0, -0.0) is double); | 177 Expect.isTrue(min(0, -0.0) is double); |
| 174 Expect.isTrue(min(0, 0.0) is int); | 178 Expect.isTrue(min(0, 0.0) is int); |
| 175 Expect.isTrue(min(0, 0) is int); | 179 Expect.isTrue(min(0, 0) is int); |
| 176 Expect.isTrue(min(0, 499.0) is int); | 180 Expect.isTrue(min(0, 499.0) is int); |
| 177 Expect.isTrue(min(0, 499) is int); | 181 Expect.isTrue(min(0, 499) is int); |
| 178 Expect.isTrue(min(0, inf) is int); | 182 Expect.isTrue(min(0, inf) is int); |
| 179 } | |
| 180 | |
| 181 testMin2() { | |
| 182 var inf = double.INFINITY; | |
| 183 var nan = double.NAN; | |
| 184 Expect.isTrue(min(0, -499.0).isNegative); | 183 Expect.isTrue(min(0, -499.0).isNegative); |
| 185 Expect.isTrue(min(0, -499).isNegative); | 184 Expect.isTrue(min(0, -499).isNegative); |
| 186 Expect.isTrue(min(0, -0.0).isNegative); | 185 Expect.isTrue(min(0, -0.0).isNegative); |
| 187 Expect.isFalse(min(0, 0.0).isNegative); | 186 Expect.isFalse(min(0, 0.0).isNegative); |
| 188 Expect.isFalse(min(0, 0).isNegative); | 187 Expect.isFalse(min(0, 0).isNegative); |
| 189 Expect.isFalse(min(0, 499.0).isNegative); | 188 Expect.isFalse(min(0, 499.0).isNegative); |
| 190 Expect.isFalse(min(0, 499).isNegative); | 189 Expect.isFalse(min(0, 499).isNegative); |
| 191 Expect.isFalse(min(0, inf).isNegative); | 190 Expect.isFalse(min(0, inf).isNegative); |
| 191 } |
| 192 | 192 |
| 193 testMin3() { |
| 193 Expect.equals(-inf, min(499.0, -inf)); | 194 Expect.equals(-inf, min(499.0, -inf)); |
| 194 Expect.equals(-499.0, min(499.0, -499.0)); | 195 Expect.equals(-499.0, min(499.0, -499.0)); |
| 195 Expect.equals(-499, min(499.0, -499)); | 196 Expect.equals(-499, min(499.0, -499)); |
| 196 Expect.equals(-0.0, min(499.0, -0.0)); | 197 Expect.equals(-0.0, min(499.0, -0.0)); |
| 197 Expect.equals(0.0, min(499.0, 0.0)); | 198 Expect.equals(0.0, min(499.0, 0.0)); |
| 198 Expect.equals(0, min(499.0, 0)); | 199 Expect.equals(0, min(499.0, 0)); |
| 199 Expect.equals(499.0, min(499.0, 499.0)); | 200 Expect.equals(499.0, min(499.0, 499.0)); |
| 200 Expect.equals(499.0, min(499.0, 499)); | 201 Expect.equals(499.0, min(499.0, 499)); |
| 201 Expect.equals(499.0, min(499.0, inf)); | 202 Expect.equals(499.0, min(499.0, inf)); |
| 202 Expect.isTrue(min(499.0, nan).isNaN); | 203 Expect.isTrue(min(499.0, nan).isNaN); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 Expect.isFalse(min(inf, 0.0).isNegative); | 275 Expect.isFalse(min(inf, 0.0).isNegative); |
| 275 Expect.isFalse(min(inf, 0).isNegative); | 276 Expect.isFalse(min(inf, 0).isNegative); |
| 276 Expect.isFalse(min(inf, 499).isNegative); | 277 Expect.isFalse(min(inf, 499).isNegative); |
| 277 Expect.isFalse(min(inf, 499.0).isNegative); | 278 Expect.isFalse(min(inf, 499.0).isNegative); |
| 278 Expect.isFalse(min(inf, inf).isNegative); | 279 Expect.isFalse(min(inf, inf).isNegative); |
| 279 } | 280 } |
| 280 | 281 |
| 281 testMax() { | 282 testMax() { |
| 282 testMax1(); | 283 testMax1(); |
| 283 testMax2(); | 284 testMax2(); |
| 285 testMax3(); |
| 284 } | 286 } |
| 285 | 287 |
| 286 testMax1() { | 288 testMax1() { |
| 287 Expect.equals(2, max(0, 2)); | 289 Expect.equals(2, max(0, 2)); |
| 288 Expect.equals(2, max(2, 0)); | 290 Expect.equals(2, max(2, 0)); |
| 289 | 291 |
| 290 Expect.equals(-9, max(-10, -9)); | 292 Expect.equals(-9, max(-10, -9)); |
| 291 Expect.equals(9, max(-10, 9)); | 293 Expect.equals(9, max(-10, 9)); |
| 292 Expect.equals(0, max(-10, 0)); | 294 Expect.equals(0, max(-10, 0)); |
| 293 Expect.equals(-9, max(-9, -10)); | 295 Expect.equals(-9, max(-9, -10)); |
| 294 Expect.equals(9, max(9, -10)); | 296 Expect.equals(9, max(9, -10)); |
| 295 Expect.equals(0, max(0, -10)); | 297 Expect.equals(0, max(0, -10)); |
| 296 | 298 |
| 297 Expect.equals(2.5, max(0.5, 2.5)); | 299 Expect.equals(2.5, max(0.5, 2.5)); |
| 298 Expect.equals(2.5, max(2.5, 0.5)); | 300 Expect.equals(2.5, max(2.5, 0.5)); |
| 299 | 301 |
| 300 Expect.equals(-9.5, max(-10.5, -9.5)); | 302 Expect.equals(-9.5, max(-10.5, -9.5)); |
| 301 Expect.equals(9.5, max(-10.5, 9.5)); | 303 Expect.equals(9.5, max(-10.5, 9.5)); |
| 302 Expect.equals(0.5, max(-10.5, 0.5)); | 304 Expect.equals(0.5, max(-10.5, 0.5)); |
| 303 Expect.equals(-9.5, max(-9.5, -10.5)); | 305 Expect.equals(-9.5, max(-9.5, -10.5)); |
| 304 Expect.equals(9.5, max(9.5, -10.5)); | 306 Expect.equals(9.5, max(9.5, -10.5)); |
| 305 Expect.equals(0.5, max(0.5, -10.5)); | 307 Expect.equals(0.5, max(0.5, -10.5)); |
| 306 | 308 |
| 307 // Test matrix: | 309 // Test matrix: |
| 308 // NaN, infinity, 499.0, 499, 0.0, 0, -0.0, -499.0, -499, -infinity. | 310 // NaN, infinity, 499.0, 499, 0.0, 0, -0.0, -499.0, -499, -infinity. |
| 309 var inf = double.INFINITY; | |
| 310 var nan = double.NAN; | |
| 311 | 311 |
| 312 Expect.isTrue(max(nan, nan).isNaN); | 312 Expect.isTrue(max(nan, nan).isNaN); |
| 313 Expect.isTrue(max(nan, -inf).isNaN); | 313 Expect.isTrue(max(nan, -inf).isNaN); |
| 314 Expect.isTrue(max(nan, -499.0).isNaN); | 314 Expect.isTrue(max(nan, -499.0).isNaN); |
| 315 Expect.isTrue(max(nan, -499).isNaN); | 315 Expect.isTrue(max(nan, -499).isNaN); |
| 316 Expect.isTrue(max(nan, -0.0).isNaN); | 316 Expect.isTrue(max(nan, -0.0).isNaN); |
| 317 Expect.isTrue(max(nan, 0.0).isNaN); | 317 Expect.isTrue(max(nan, 0.0).isNaN); |
| 318 Expect.isTrue(max(nan, 499.0).isNaN); | 318 Expect.isTrue(max(nan, 499.0).isNaN); |
| 319 Expect.isTrue(max(nan, 499).isNaN); | 319 Expect.isTrue(max(nan, 499).isNaN); |
| 320 Expect.isTrue(max(nan, inf).isNaN); | 320 Expect.isTrue(max(nan, inf).isNaN); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 Expect.isTrue(max(0.0, nan).isNaN); | 382 Expect.isTrue(max(0.0, nan).isNaN); |
| 383 | 383 |
| 384 Expect.isTrue(max(0.0, 499.0) is double); | 384 Expect.isTrue(max(0.0, 499.0) is double); |
| 385 Expect.isTrue(max(0.0, 499) is int); | 385 Expect.isTrue(max(0.0, 499) is int); |
| 386 Expect.isTrue(max(0.0, 0.0) is double); | 386 Expect.isTrue(max(0.0, 0.0) is double); |
| 387 Expect.isTrue(max(0.0, 0) is double); | 387 Expect.isTrue(max(0.0, 0) is double); |
| 388 Expect.isTrue(max(0.0, -0.0) is double); | 388 Expect.isTrue(max(0.0, -0.0) is double); |
| 389 Expect.isTrue(max(0.0, -499) is double); | 389 Expect.isTrue(max(0.0, -499) is double); |
| 390 Expect.isTrue(max(0.0, -499.0) is double); | 390 Expect.isTrue(max(0.0, -499.0) is double); |
| 391 Expect.isTrue(max(0.0, -inf) is double); | 391 Expect.isTrue(max(0.0, -inf) is double); |
| 392 } |
| 392 | 393 |
| 394 testMax2() { |
| 393 Expect.isFalse(max(0.0, 0.0).isNegative); | 395 Expect.isFalse(max(0.0, 0.0).isNegative); |
| 394 Expect.isFalse(max(0.0, 0).isNegative); | 396 Expect.isFalse(max(0.0, 0).isNegative); |
| 395 Expect.isFalse(max(0.0, -0.0).isNegative); | 397 Expect.isFalse(max(0.0, -0.0).isNegative); |
| 396 Expect.isFalse(max(0.0, -499).isNegative); | 398 Expect.isFalse(max(0.0, -499).isNegative); |
| 397 Expect.isFalse(max(0.0, -499.0).isNegative); | 399 Expect.isFalse(max(0.0, -499.0).isNegative); |
| 398 Expect.isFalse(max(0.0, -inf).isNegative); | 400 Expect.isFalse(max(0.0, -inf).isNegative); |
| 399 | 401 |
| 400 Expect.equals(inf, max(0, inf)); | 402 Expect.equals(inf, max(0, inf)); |
| 401 Expect.equals(499.0, max(0, 499.0)); | 403 Expect.equals(499.0, max(0, 499.0)); |
| 402 Expect.equals(499, max(0, 499)); | 404 Expect.equals(499, max(0, 499)); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 Expect.isTrue(max(-0.0, 499.0) is double); | 440 Expect.isTrue(max(-0.0, 499.0) is double); |
| 439 Expect.isTrue(max(-0.0, 499) is int); | 441 Expect.isTrue(max(-0.0, 499) is int); |
| 440 Expect.isTrue(max(-0.0, 0.0) is double); | 442 Expect.isTrue(max(-0.0, 0.0) is double); |
| 441 Expect.isTrue(max(-0.0, 0) is int); | 443 Expect.isTrue(max(-0.0, 0) is int); |
| 442 Expect.isTrue(max(-0.0, -0.0) is double); | 444 Expect.isTrue(max(-0.0, -0.0) is double); |
| 443 Expect.isTrue(max(-0.0, -499) is double); | 445 Expect.isTrue(max(-0.0, -499) is double); |
| 444 Expect.isTrue(max(-0.0, -499.0) is double); | 446 Expect.isTrue(max(-0.0, -499.0) is double); |
| 445 Expect.isTrue(max(-0.0, -inf) is double); | 447 Expect.isTrue(max(-0.0, -inf) is double); |
| 446 } | 448 } |
| 447 | 449 |
| 448 testMax2() { | 450 testMax3() { |
| 449 var inf = double.INFINITY; | |
| 450 var nan = double.NAN; | |
| 451 | |
| 452 Expect.isFalse(max(-0.0, 0.0).isNegative); | 451 Expect.isFalse(max(-0.0, 0.0).isNegative); |
| 453 Expect.isFalse(max(-0.0, 0).isNegative); | 452 Expect.isFalse(max(-0.0, 0).isNegative); |
| 454 Expect.isTrue(max(-0.0, -0.0).isNegative); | 453 Expect.isTrue(max(-0.0, -0.0).isNegative); |
| 455 Expect.isTrue(max(-0.0, -499).isNegative); | 454 Expect.isTrue(max(-0.0, -499).isNegative); |
| 456 Expect.isTrue(max(-0.0, -499.0).isNegative); | 455 Expect.isTrue(max(-0.0, -499.0).isNegative); |
| 457 Expect.isTrue(max(-0.0, -inf).isNegative); | 456 Expect.isTrue(max(-0.0, -inf).isNegative); |
| 458 | 457 |
| 459 Expect.equals(inf, max(-499, inf)); | 458 Expect.equals(inf, max(-499, inf)); |
| 460 Expect.equals(499.0, max(-499, 499.0)); | 459 Expect.equals(499.0, max(-499, 499.0)); |
| 461 Expect.equals(499, max(-499, 499)); | 460 Expect.equals(499, max(-499, 499)); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 537 Expect.isTrue(max(-inf, -499.0).isNegative); | 536 Expect.isTrue(max(-inf, -499.0).isNegative); |
| 538 Expect.isTrue(max(-inf, -inf).isNegative); | 537 Expect.isTrue(max(-inf, -inf).isNegative); |
| 539 } | 538 } |
| 540 | 539 |
| 541 main() { | 540 main() { |
| 542 testMin(); | 541 testMin(); |
| 543 testMin(); | 542 testMin(); |
| 544 testMax(); | 543 testMax(); |
| 545 testMax(); | 544 testMax(); |
| 546 } | 545 } |
| OLD | NEW |