| // Copyright (c) 2013, 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. |
| |
| import 'dart:math'; |
| import 'package:expect/expect.dart'; |
| |
| main() { |
| // constructor |
| { |
| var point = new Point(0, 0); |
| Expect.equals(0, point.x); |
| Expect.equals(0, point.y); |
| Expect.equals('Point(0, 0)', '$point'); |
| } |
| |
| // constructor X |
| { |
| var point = new Point<int>(10, 0); |
| Expect.equals(10, point.x); |
| Expect.equals(0, point.y); |
| Expect.equals('Point(10, 0)', '$point'); |
| } |
| |
| // constructor X Y |
| { |
| var point = new Point<int>(10, 20); |
| Expect.equals(10, point.x); |
| Expect.equals(20, point.y); |
| Expect.equals('Point(10, 20)', '$point'); |
| } |
| |
| // constructor X Y double |
| { |
| var point = new Point<double>(10.5, 20.897); |
| Expect.equals(10.5, point.x); |
| Expect.equals(20.897, point.y); |
| Expect.equals('Point(10.5, 20.897)', '$point'); |
| } |
| |
| // constructor X Y NaN |
| { |
| var point = new Point(double.nan, 1000); |
| Expect.isTrue(point.x.isNaN); |
| Expect.equals(1000, point.y); |
| Expect.equals('Point(NaN, 1000)', '$point'); |
| } |
| |
| // squaredDistanceTo |
| { |
| var a = new Point(7, 11); |
| var b = new Point(3, -1); |
| Expect.equals(160, a.squaredDistanceTo(b)); |
| Expect.equals(160, b.squaredDistanceTo(a)); |
| } |
| |
| // distanceTo |
| { |
| var a = new Point(-2, -3); |
| var b = new Point(2, 0); |
| Expect.equals(5, a.distanceTo(b)); |
| Expect.equals(5, b.distanceTo(a)); |
| } |
| |
| // subtract |
| { |
| var a = new Point(5, 10); |
| var b = new Point(2, 50); |
| Expect.equals(new Point(3, -40), a - b); |
| } |
| |
| // add |
| { |
| var a = new Point(5, 10); |
| var b = new Point(2, 50); |
| Expect.equals(new Point(7, 60), a + b); |
| } |
| |
| // hashCode |
| { |
| var a = new Point(0, 1); |
| var b = new Point(0, 1); |
| Expect.equals(b.hashCode, a.hashCode); |
| |
| var c = new Point(1, 0); |
| Expect.isFalse(a.hashCode == c.hashCode); |
| } |
| |
| // magnitude |
| { |
| var a = new Point(5, 10); |
| var b = new Point(0, 0); |
| Expect.equals(a.distanceTo(b), a.magnitude); |
| Expect.equals(0, b.magnitude); |
| |
| var c = new Point(-5, -10); |
| Expect.equals(a.distanceTo(b), c.magnitude); |
| } |
| } |