Added Check in Validator for rectangle having the same points.
This commit is contained in:
@@ -20,21 +20,33 @@ namespace Shapes
|
||||
throw new ShapeException(errorMessage);
|
||||
}
|
||||
|
||||
public static void ValidateRectangle(Point point1, Point point2, Point point3, Point point4, String errorMessage)
|
||||
{
|
||||
public static void ValidateRectangle(List<Point> points, String errorMessage)
|
||||
{
|
||||
List<Point> pointList = new List<Point>(points);
|
||||
|
||||
var TOLERANCE = Double.Epsilon + Double.Epsilon;
|
||||
var plumLine1 = new Line(point1, point3);
|
||||
var plumLine2 = new Line(point2, point4);
|
||||
var heightLine1 = new Line(point1, point4);
|
||||
var heightLine2 = new Line( point2, point3);
|
||||
var lengthLine1 = new Line(point1, point2);
|
||||
var lengthLine2 = new Line(point4, point3);
|
||||
var plumLine1 = new Line(points[0], points[2]);
|
||||
var plumLine2 = new Line(points[1], points[3]);
|
||||
var heightLine1 = new Line(points[0], points[3]);
|
||||
var heightLine2 = new Line( points[1], points[2]);
|
||||
var lengthLine1 = new Line(points[0], points[1]);
|
||||
var lengthLine2 = new Line(points[3], points[2]);
|
||||
if (Math.Abs(plumLine1.ComputeLength() - plumLine2.ComputeLength()) > TOLERANCE
|
||||
|| Math.Abs(heightLine1.ComputeLength() - heightLine2.ComputeLength()) > TOLERANCE
|
||||
|| Math.Abs(lengthLine1.ComputeLength() - lengthLine2.ComputeLength()) > TOLERANCE )
|
||||
{
|
||||
throw new ShapeException(errorMessage);
|
||||
}
|
||||
|
||||
while(pointList.Count > 0)
|
||||
{
|
||||
var tmp = pointList[0];
|
||||
pointList.Remove(tmp);
|
||||
if (pointList.Contains(tmp))
|
||||
{
|
||||
throw new ShapeException(errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user