对于该次实验,我使用的IDE是Idea,由于这个IDE的自动程度非常的高,导致整个实验过程比较简单。
对于引入 junit, hamcrest and eclemma这三个库来说,依次File->Project Structure->Library 然后点一个加号,就可以选择所需的jar包,就然后确认就可以导入了。
导入结果:
项目主要逻辑代码:
public class Triangle { static enum Type { Equilateral,//等边三角形 Isosceles,//等腰三角形 Scalene,//不等边 NotTriangle //不是三角形 } public static Triangle.Type testTriangle(int a, int b, int c){ if(a <= 0 || b <= 0 || c <= 0){ return Triangle.Type.NotTriangle; } int [] edgeArray = {a, b,c}; Arrays.sort(edgeArray); if(edgeArray[0] + edgeArray[1] <= edgeArray[2]){ return Triangle.Type.NotTriangle; } HashSet temp = new HashSet(); for(int i = 0; i < edgeArray.length; i++){ temp.add(edgeArray[i]); } if(temp.size() == 3){ return Triangle.Type.Scalene; } else if(temp.size() == 2){ return Triangle.Type.Isosceles; } else{ return Triangle.Type.Equilateral; } } }
测试用例:
public class TriangleTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testTestTriangle1() throws Exception {//判断是否是三角形 assertEquals(Triangle.Type.NotTriangle, Triangle.testTriangle(1,2,3)); } @Test public void testTestTriangle2() throws Exception {//判断是否等边 assertEquals(Triangle.Type.Equilateral, Triangle.testTriangle(2,2,2)); } @Test public void testTestTriangle3() throws Exception {//判断是否等腰 assertEquals(Triangle.Type.Isosceles, Triangle.testTriangle(2,2,3)); } @Test public void testTestTriangle4() throws Exception {//盘算是否是普通三角形 assertEquals(Triangle.Type.Scalene, Triangle.testTriangle(4,5,7)); } }
测试结果: