| 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; | 11 var inf = double.INFINITY; |
| 12 var nan = double.NAN; | 12 var nan = double.NAN; |
| 13 | 13 |
| 14 // A class that might work if [min] and [max] worked for non-numbers. | 14 // A class that might work if [min] and [max] worked for non-numbers. |
| 15 class Wrap implements Comparable { | 15 class Wrap implements Comparable { |
| 16 final value; | 16 final value; |
| 17 Wrap(this.value); | 17 Wrap(this.value); |
| 18 int compare(Wrap other) => value.compare(other.value); | 18 int compareTo(Wrap other) => value.compareTo(other.value); |
| 19 bool operator<(Wrap other) => compare(other) < 0; | 19 bool operator<(Wrap other) => compareTo(other) < 0; |
| 20 bool operator<=(Wrap other) => compare(other) <= 0; | 20 bool operator<=(Wrap other) => compareTo(other) <= 0; |
| 21 bool operator>(Wrap other) => compare(other) > 0; | 21 bool operator>(Wrap other) => compareTo(other) > 0; |
| 22 bool operator>=(Wrap other) => compare(other) >= 0; | 22 bool operator>=(Wrap other) => compareTo(other) >= 0; |
| 23 bool operator==(other) => other is Wrap && compare(other) == 0; | 23 bool operator==(other) => other is Wrap && compareTo(other) == 0; |
| 24 String toString() => 'Wrap($value)'; | 24 String toString() => 'Wrap($value)'; |
| 25 int get hashCode => value.hashCode; | 25 int get hashCode => value.hashCode; |
| 26 } | 26 } |
| 27 | 27 |
| 28 var wrap1 = new Wrap(1); | 28 var wrap1 = new Wrap(1); |
| 29 var wrap2 = new Wrap(2); | 29 var wrap2 = new Wrap(2); |
| 30 | 30 |
| 31 testMin() { | 31 testMin() { |
| 32 testMin1(); | 32 testMin1(); |
| 33 testMin2(); | 33 testMin2(); |
| (...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 571 Expect.throws(() => min(wrap1, 0)); | 571 Expect.throws(() => min(wrap1, 0)); |
| 572 Expect.throws(() => min(0, wrap2)); | 572 Expect.throws(() => min(0, wrap2)); |
| 573 } | 573 } |
| 574 | 574 |
| 575 main() { | 575 main() { |
| 576 testMin(); | 576 testMin(); |
| 577 testMin(); | 577 testMin(); |
| 578 testMax(); | 578 testMax(); |
| 579 testMax(); | 579 testMax(); |
| 580 } | 580 } |
| OLD | NEW |