בהצלחה.
קוד: בחירת הכל
public class myTests {
public static void main(String[] args)
{
//points
System.out.println("\n//POINTS");
Point p1= new Point (4,3);
Point p2= new Point (-3,-2);
Point p3= new Point (-3,3);
Point p4= new Point (4,-2);
Point p5= new Point (3,2);
Point p6= new Point (3,-1);
Point p7= new Point (-1,1);
System.out.println("p1: "+p1);
System.out.println("p2: "+p2);
System.out.println("p3: "+p3);
System.out.println("p4: "+p4);
System.out.println("p5: "+p5);
System.out.println("p6: "+p6);
System.out.println("p7: "+p7);
//rectangles
System.out.println("\n//RECTANGLES");
Rectangle r1= new Rectangle(p1,p2);
Rectangle r2= new Rectangle(r1);
Rectangle r3= new Rectangle(p3,p4);
Rectangle r4= new Rectangle(p4,p3);
Rectangle r5= new Rectangle(p1,p7);
Rectangle r6= null;
System.out.println("r1: "+r1);
System.out.println("r2: "+r2);
System.out.println("r3: "+r3);
System.out.println("r4: "+r4);
System.out.println("r5: "+r5);
System.out.println("\n//Rectangle points getters");
System.out.println("r1.p1: "+r1.getP1() + " expected: " +p1);
System.out.println("r1.p2: "+r1.getP2() + " expected: " +p2);
System.out.println("\n//Rectangle delta getters");
System.out.println("r1.deltaX: "+r1.getDeltaX() + " expected: 7" );
System.out.println("r1.deltaY: "+r1.getDeltaY() + " expected: 5" );
System.out.println("\n//area");
System.out.println("r1.area: "+r1.area() + " expected: 35" );
System.out.println("r2.area: "+r2.area() + " expected: 35" );
System.out.println("r5.area: "+r5.area() + " expected: 10" );
System.out.println("\n//perimeter");
System.out.println("r1.perimeter: "+r1.perimeter() + " expected: 24" );
System.out.println("r2.perimeter: "+r2.perimeter() + " expected: 24" );
System.out.println("r5.perimeter: "+r5.perimeter() + " expected: 14" );
System.out.println("\n//equals");
System.out.println("r1==r2 ? " + r1.equals(r2) + " expected: TRUE" );
System.out.println("r1==r3 ? " + r1.equals(r3) + " expected: TRUE" );
System.out.println("r1==r4 ? " + r1.equals(r4) + " expected: TRUE" );
System.out.println("r1==r5 ? " + r1.equals(r5) + " expected: FALSE" );
System.out.println("r1==r6 ? " + r1.equals(r6) + " expected: FALSE" );
System.out.println("\n//contains");
System.out.println("r1 contains p1? " + r1.contains(p1) + " expected: TRUE" );
System.out.println("r1 contains p5? " + r1.contains(p5) + " expected: TRUE" );
System.out.println("r1 contains (-7,7)?" + r1.contains(new Point (-7,7)) + " expected: FALSE" );
System.out.println("\n//translate");
r2.translate(p7);
System.out.println("translated r2 " + r2 + " expected <(3,4),(-4,-1)>" );
r2.translate(new Point(1,-1));
//triangles
System.out.println("\n//TRIANGLES");
Triangle t1= new Triangle(p1,p2,p3);
Triangle t2= new Triangle(p2,p3,p1);
Triangle t3= new Triangle(p3,p1,p2);
Triangle t4= new Triangle(t1);
Triangle t5= new Triangle(p5,p6,p7);
Triangle t6= null;
System.out.println("t1: "+t1);
System.out.println("t2: "+t2);
System.out.println("t3: "+t3);
System.out.println("t4: "+t4);
System.out.println("\n//Rectangle points getters");
System.out.println("t1.p1: "+t1.getP1() + " expected: " +p1);
System.out.println("t1.p2: "+t1.getP2() + " expected: " +p2);
System.out.println("t1.p3: "+t1.getP3() + " expected: " +p3);
System.out.println("\n//area");
System.out.println("t1.area: "+t1.area() + " expected: 17.5" );
System.out.println("t5.area: "+t5.area() + " expected: 6" );
System.out.println("\n//perimeter");
System.out.println("t1.perimeter: "+t1.perimeter() + " expected: ~20.6 " );
System.out.println("\n//equals");
System.out.println("t1==t2 ? " + t1.equals(t2) + " expected: TRUE" );
System.out.println("t1==t3 ? " + t1.equals(t3) + " expected: TRUE" );
System.out.println("t1==t4 ? " + t1.equals(t4) + " expected: TRUE" );
System.out.println("t1==t5 ? " + t1.equals(t5) + " expected: FALSE" );
System.out.println("t1==t6 ? " + t1.equals(t6) + " expected: FALSE" );
System.out.println("\n//contains");
System.out.println("t1 contains (0,0)? " + t1.contains(new Point()) + " expected: FALSE" );
System.out.println("t1 contains null? " + t1.contains(r6) + " expected: FALSE");
System.out.println("t1 contains p1? " + t1.contains(p1) + " expected: TRUE" );
System.out.println("\n//translate");
t2.translate(p7);
System.out.println("translated t2 " + t2 + " expected <(-4,-1),(-4,4),(3,4)>" );
t2.translate(new Point(1,-1));
//interface methods
System.out.println("\n//INTERFACE METHODS");
Polygon poly1=((Polygon) r1.cloneMe());
System.out.println("\n//contains polygon");
System.out.println("r1 contains t5? "+ r1.contains((Polygon)t5) + " expected: true");
System.out.println("r1 contains null? "+ r1.contains(r6) + " expected: false");
System.out.println("\n//getVertices");
Point[] Vertices1= r1.getVertices();
Point[] Vertices2= t1.getVertices();
for (int i=0; i<Vertices1.length ; i++){
System.out.println("r1's vertice num " + (i+1) + ":" + Vertices1[i]);
}
System.out.println("");
for (int i=0; i<Vertices2.length ; i++){
System.out.println("t1's vertice num " + (i+1) + ":" + Vertices2[i]);
}
System.out.println("\n//scale");
double scalefactor= 1.5;
r1.scale(p7,scalefactor);
System.out.println("scaled r1 "+ scalefactor +" times from point "+p7);
Point[] Vertices3= r1.getVertices();
for (int i=0; i<Vertices3.length ; i++){
System.out.println("r1's scaled vertice num " + (i+1) + ":" + Vertices3[i]);
}
System.out.println("");
t1.scale(p7,scalefactor);
System.out.println("scaled t1 "+ scalefactor +" times from point "+p7);
Point[] Vertices4= t1.getVertices();
for (int i=0; i<Vertices4.length ; i++){
System.out.println("t1's scaled vertice num " + (i+1) + ":" + Vertices4[i]);
}
System.out.println("\n//PolygonContainer");
PolygonContainer PC1=new PolygonContainer();
Point p11=new Point(-11,2);
Point p12=new Point(-8,4);
Point p21=new Point(-7,2);
Point p22=new Point(-4,4);
Point p31=new Point(0,2);
Point p32=new Point(-3,4);
Point p41=new Point(1,2);
Point p42=new Point(4,4);
Point p51=new Point(5,1);
Point p52=new Point(3,5);
Point p61=new Point(6,4);
Point p62=new Point(9,2);
Point px=new Point (4,4);
Rectangle pr1= new Rectangle(p11,p12);
Rectangle pr2= new Rectangle(p21,p22);
Rectangle pr3= new Rectangle(p31,p32);
Rectangle pr4= new Rectangle(p41,p42);
Rectangle pr5= new Rectangle(p51,p52);
Triangle pr6= new Triangle(p61,p62,new Point(9,4));
PC1.add(pr1);
double sum1=PC1.sumArea();
System.out.println("Area sum after adding pr1 "+sum1 +" expected: 6");
PC1.add(pr1);
double sum2=PC1.sumArea();
System.out.println("Area sum after adding pr1 "+sum2+" expected: 12");
PC1.add(pr2);
double sum3=PC1.sumArea();
System.out.println("Area sum after adding pr2 "+sum3+" expected: 18");
PC1.add(pr3);
double sum4=PC1.sumArea();
System.out.println("Area sum after adding pr3 "+sum4+" expected: 24");
PC1.add(pr4);
double sum5=PC1.sumArea();
System.out.println("Area sum after adding pr4 "+sum5+" expected: 30");
PC1.add(pr5);
double sum6=PC1.sumArea();
System.out.println("Area sum after adding pr5 "+sum6+" expected: 38");
PC1.add(pr6);
double sum7=PC1.sumArea();
System.out.println("Area sum after adding pr6 "+sum7+" expected: 41");
int num1=PC1.numOfPolygons();
System.out.println("number of Polygons in the container before removing: "+num1+" expected: 7");
for (int i=0; i<10;i++){
Polygon p9=PC1.polygonAt(i);
System.out.println(i+"th polygon "+PC1.polygonAt(i)+" (before removing)");
}
//Constructor
System.out.println("\n//constructor");
PolygonContainer PC3= new PolygonContainer(PC1);
for (int i=0; i<PC3.numOfPolygons();i++){
System.out.println("NEW POLYGON at place "+(i+1)+" is: "+PC3.polygonAt(i)+ " (before removing)");
}
System.out.println("This test should have printed: pr1, pr1,pr2,pr3,pr4,pr5,pr6 by this order.");
//getPolygonsOfAreaUpTo
System.out.println("\n//getPolygonsOfAreaUpTo");
int area=4;
PolygonContainer PC2=PC1.getPolygonsOfAreaUpTo(area);
int num3=PC2.numOfPolygons();
System.out.println("polygons number with area up to "+area+ ": "+ num3+" expected: 1");
for (int i=0; i<10;i++){
Polygon p9=PC1.polygonAt(i);
System.out.println(i+"th polygon "+PC2.polygonAt(i)+" (with area up to "+ area+ ")");
}
System.out.println("This test should have printed: only pr6 and 9 nulls.");
//remove
System.out.println("\n//remove");
PC1.remove(px); //expected to remove 5th and 6th polygons (pr4 & pr5)
int num2=PC1.numOfPolygons();
System.out.println("polygons number after removing: "+ num2+" expected: 5");
for (int i=0; i<10;i++){
Polygon p9=PC1.polygonAt(i);
System.out.println(i+"th polygon "+PC1.polygonAt(i)+" (after removing)");
}
System.out.println("This test should have printed: pr1,pr1,pr2,pr3,pr6,null,null,null,null,null by this order.");
double sum=PC1.sumArea();
System.out.println("Area sum after removing "+sum +" expected: 27");
//translate
System.out.println("\n//translate");
PC1.translate(p41);
for (int i=0; i<10;i++){
Polygon p9=PC1.polygonAt(i);
System.out.println(i+"th polygon "+PC1.polygonAt(i)+" (after removing, after translating)");
}
System.out.println("This test should have printed: pr1, pr1,pr2,pr3,pr6,null,null,null,null,null by this order, after translating");
}
}