public void FindClosestPoints_WhenOnePoint_ThenThisPoint()
 {
     // when
     (Point2D, Point2D)result = ClosestPoints.FindClosestPoints(new[] { Point2D.Of(2, 2) });
     // then
     result.As <IEquatable <(Point2D, Point2D)> >().Should().Be((Point2D.Of(2, 2), Point2D.Of(2, 2)));
 }
 public void FindClosestPoints_WhenThreePoints_ThenPairOfClosestPoints()
 {
     // when
     (Point2D, Point2D)result =
         ClosestPoints.FindClosestPoints(new[] { Point2D.Of(3, 2), Point2D.Of(1, 1), Point2D.Of(7, 0) });
     // then
     result.As <IEquatable <(Point2D, Point2D)> >().Should().Be((Point2D.Of(1, 1), Point2D.Of(3, 2)));
 }
 public void FindClosestPoints_WhenMultiplePoints_ThenPairOfClosestPoints()
 {
     // when
     (Point2D, Point2D)result = ClosestPoints.FindClosestPoints(
         new[] { Point2D.Of(1, 1), Point2D.Of(-2, 2), Point2D.Of(-4, 4),
                 Point2D.Of(3, -3), Point2D.Of(0, -5), Point2D.Of(1, 0),
                 Point2D.Of(-7, 2), Point2D.Of(4, 5) });
     // then
     result.As <IEquatable <(Point2D, Point2D)> >().Should().Be((Point2D.Of(1, 1), Point2D.Of(1, 0)));
 }