| // Copyright (c) 2014, 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 Rectangle<T> intersection(Rectangle<T> other) |
| /// Computes the intersection of this and other. |
| /// The intersection of two axis-aligned rectangles, if any, is always another |
| /// axis-aligned rectangle. |
| /// Returns the intersection of this and other, or null if they don't intersect. |
| /// @description Checks the function for some predefined data. |
| /// @author kaigorodov |
| |
| import "dart:math"; |
| import "../../../Utils/expect.dart"; |
| |
| void check(Rectangle r1, Rectangle r2, Rectangle? expected) { |
| Rectangle? actual1 = r1.intersection(r2); |
| Expect.equals(expected, actual1, |
| "r1=$r1, r2=$r2, expected=$expected, actual1=$actual1"); |
| Rectangle? actual2 = r2.intersection(r1); |
| Expect.equals(actual1, actual2, "r1=$r1, r2=$r2"); |
| } |
| |
| main() { |
| Rectangle r = new Rectangle(0, 0, 1, 1); |
| check(r, new Rectangle(0, 0, 1, 1), new Rectangle(0, 0, 1, 1)); |
| check(r, new Rectangle(0.5, 0, 0.5, 1), new Rectangle(0.5, 0, 0.5, 1)); |
| check(r, new Rectangle(-10, -5, 1, 1.5), null); |
| check(r, new Rectangle(0, 0, 1.1, 1), new Rectangle(0, 0, 1, 1)); |
| check(r, new Rectangle(1.1, 1.1, 2, 2), null); |
| check(r, new Rectangle(1.0, 1.0, 2.1, 3.1), new Rectangle(1.0, 1.0, 0, 0)); |
| } |