blob: 08586f30a5027fa2cc793ae86489749169d99112 [file] [log] [blame]
 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. /// @assertion bool operator ==(other) /// The equality operator. /// ... /// Transitive: For all objects o1, o2, and o3, if o1 == o2 and o2 == o3 are /// true, then o1 == o3 must be true. /// @description Checks that the equality operator is transitive. /// @author ngl@unipru.ru import "dart:math"; import "../../../Utils/expect.dart"; const List values = const [ 0, -1, 1, 10, -10, 0.0, -1.0, 1.0, 10.0, -10.0, double.infinity, double.maxFinite, double.minPositive, -double.maxFinite, -double.minPositive, double.nan, double.negativeInfinity ]; main() { for (int i = 0; i < values.length; i++) { for (int j = 0; j < values.length; j++) { for (int k = 0; k < values.length; k++) { for (int l = 0; l < values.length; l++) { Rectangle r1 = new Rectangle(values[i], values[j], values[k], values[l]); Rectangle r2 = new Rectangle(values[k], values[l], values[i], values[j]); Rectangle r3 = new Rectangle(values[j], values[k], values[l], values[i]); var res1 = (r1 == r2); var res2 = (r2 == r3); var res3 = (r1 == r3); if (res1 && res2) { Expect.isTrue(res3); } } } } } }