来test三角形area和perimeter(周长)的method。三角形的class如下packageedu.susqu.CSCI471.Test01;importjava.util.Date;publicclassTriangle{publicTriangle(Pointp1,Pointp2,Poin...
来test三角形area 和perimeter(周长)的method。三角形的class如下
package edu.susqu.CSCI471.Test01;
import java.util.Date;
public class Triangle {
public Triangle(Point p1, Point p2, Point p3) {
vertices = new Point[3];
vertices[0] = p1;
vertices[1] = p2;
vertices[2] = p3;
}
public double area(){
double a = vertices[0].distance(vertices[1]);
double b = vertices[1].distance(vertices[2]);
double c = vertices[2].distance(vertices[0]);
double s = (a + b + c) / 2.0;
return Math.sqrt(s*(s-a)*(s-b)*(s-c));
}
public double perimeter() {
double a = vertices[0].distance(vertices[1]);
double b = vertices[1].distance(vertices[2]);
double c = vertices[2].distance(vertices[0]);
return a + b + c;
}
private Point[] vertices;
private Date date;
}
然后是Point class
package edu.susqu.CSCI471.Test01;
public class Point {
private double x;
private double y;
public Point(double x, double y) {
super();
this.x = x;
this.y = y;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
public double distance(Point p) {
return Math.sqrt((x-p.x)*(x-p.x) + (y-p.y)*(y-p.y));
}
public static double distance(Point p, Point q) {
return Math.sqrt((q.x-p.x)*(q.x-p.x) + (q.y-p.y)*(q.y-p.y));
}
}
然后是用(0,0),(1,0),(0,2)做3个vertices,来test面积,和用parameterized test 随机生成10个三角形test 周长。 第一个我这么写为什么错?第二个该怎么做?
展开