// ReSharper disable once MethodTooLong internal Tuple <Point, Point> Calculate([NotNull] ICircle circle, [NotNull] Tuple <double, double> xt1And2, [NotNull] Tuple <double, double> yt1And2) { if (AreInputFieldsValid(circle, xt1And2, yt1And2)) { return(new Tuple <Point, Point>(Point.Unknown, Point.Unknown)); } double xt1 = xt1And2.Item1; double xt2 = xt1And2.Item2; double yt1 = yt1And2.Item1; double yt2 = yt1And2.Item2; var pointOne = new Point(xt1, yt1); var pointTwo = new Point(xt2, yt2); if (!circle.IsPointOnCircle(pointOne)) { pointOne = new Point(xt1, yt2); pointTwo = new Point(xt2, yt1); if (!circle.IsPointOnCircle(pointOne)) { PointIsNotOnCircle(circle, pointOne); } } if (!circle.IsPointOnCircle(pointTwo)) { PointIsNotOnCircle(circle, pointTwo); } return(new Tuple <Point, Point>(pointOne, pointTwo)); }
internal bool ValidatePoint([NotNull] ICircle circle, [NotNull] Point startPoint) { return(circle.IsPointOnCircle(startPoint)); }