[ST2017] Lab1: Triangle type and Junit test

Lab1 3014218071 王汉超

Request:

  Write a program with a function(getTriangleStatus) and test it, which takes three double number l1, l2, l3 as lengths of triangle sides and calculates whether the triangle is equilateral, isosceles, or scalene.

Contents:

一. 导入相应包

1.导入 JUnit, Hamcrest

右键项目名 -> 选择 属性Properties -> 选择 Libraries -> 选择 JUnit4 -> Finish

 

2. 导入

Help -> Install new software -> Add -> Local -> 选择本地文件Eclemma路径 -> 安装, 安装后重启.

二、实验内容

1.Description

    判断三角形类型的程序:

    Input 三条边的长度(double): l1, l2, l3

    Output 构成三角形类型(int): 1 -- 错误(边长不是正实数); 0 -- 不构成三角形, 1 -- 非等腰(scalene)三角形, 2 -- 等腰不等边(isosceles)三角形, 3 -- 等边(equilateral)三角形

2.Codes:

gitHub: https://github.com/E-C-Ares/ST2017_Lab1

Main.java:

package isTriangle;import java.util.Scanner;public class Main {public static int getTriangleStatus(double l1, double l2, double l3){int s = -1;double temp = 0;//l1 > l2 > l3if (l2 > l1){temp = l2;l2 = l1;l1 = temp;}if (l3 > l1){temp = l3;l3 = l1;l1 = temp;}if (l3 > l2){temp = l3;l3 = l2;l2 = temp;}if(l3 > 0){if(l1 >= l2 + l3){s = 0;}else if(l1 < l2 + l3){s = 1;if(l1 == l2 || l2 == l3){s ++;if(l1 == l3){s ++;}}}}return s;}@SuppressWarnings("resource")public static void main(String[] args){Scanner edges = new Scanner(System.in);System.out.println("输入三条边的长度:"); double l1 = edges.nextDouble();      double l2 = edges.nextDouble();double l3 = edges.nextDouble();int s = getTriangleStatus(l1, l2, l3);switch (s){case -1:System.out.println("输入不符合要求"); break;case 0:System.out.println("不构成三角形");break;case 1:System.out.println("一般三角形");break;case 2:System.out.println("仅等腰三角形");break;case 3:System.out.println("等边三角形");break;}main(args);}
}

3.JUnit Test & Eclemma Cover:

    为了避免污染源代码, 测试代码和源代码放置于不同的文件夹中:

    右键项目 -> New -> JUnit Test Case -> 选择被测试函数: 截图如下:

MainTest.java:

package isTriangle;import static org.junit.Assert.*;import org.junit.Test;public class MainTest {Main t= new Main();//getTriangleStatus getStatus = new getTriangleStatus();
    @Testpublic void test1() {assertEquals("Should be an equilateral triangle", 3, t.getTriangleStatus(1.0, 1.0, 1.0));}@Testpublic void test2() {assertEquals("Should be an ERROR!", -1, t.getTriangleStatus(0, 0, 0));}@Testpublic void test3() {assertEquals("Should be an ERROR!", -1, t.getTriangleStatus(0, 1, 1));}@Testpublic void test4() {assertEquals("Should be an ERROR!", -1, t.getTriangleStatus(-0.01, 9.0, 9.0));}@Testpublic void test5() {assertEquals("Should be an isosceles triangle", 2, t.getTriangleStatus(2, 2, 3));}@Testpublic void test6() {assertEquals("Should be an isosceles triangle", 0, t.getTriangleStatus(1, 1, 2));}@Testpublic void test7() {assertEquals("Should be a scalene triangle", 1, t.getTriangleStatus(10.0000, 10.0001, 10.0002));}@Testpublic void test8() {assertEquals("Should be a scalene triangle", 1, t.getTriangleStatus(10.0000, 10.0001, 10.0002));}@Testpublic void test9() {assertEquals("Should be a scalene triangle", 1, t.getTriangleStatus(10.0000, 10.0001, 10.0002));}@Testpublic void test10() {assertEquals("Should be a scalene triangle", 1, t.getTriangleStatus(10.0000, 10.0001, 10.0002));}@Testpublic void test11() {assertEquals("Should be a scalene triangle", 1, t.getTriangleStatus(10.0, 9.0, 8.0));}    
}

Run -> Coverage last launched

三. 实验结果

Junit 测试用例 与 Eclemma 覆盖检测:

四. 总结

学会了安装jar包, 使用 JUnit 和 Eclemma 进行测试, 习得在测试的过程中应该考虑到尽可能多的情况, 以满足程序的完备性.

转载于:https://www.cnblogs.com/cragoncanth/p/6537272.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

说说图片加载不出来_晒晒我的新家,朋友都说好看,恨不得天天宅在卧室不出来...

我和老婆是高中同学&#xff0c;早年因为没有考上大学&#xff0c;我早早的来北京闯事业&#xff0c;也吃了很多苦&#xff0c;好在那时机会很多&#xff0c;做什么都能赚点钱&#xff0c;生活质量也逐渐好了起来&#xff0c;配得上我老婆这样的大学生&#xff0c;今年和老婆结…

mysql中基本的DML语句

1.DML语句的含义 数据操纵语言&#xff08;DML&#xff09; 由 DBMS 提供&#xff0c;用于让用户或程序员使用&#xff0c;实现对数据库中数据的操作。基本的 DML 分为两类四种&#xff1a;检索&#xff08;查询&#xff09;和更新&#xff08;插入、删除、修改&#xff09;。…

委托窗体传值

转载于:https://www.cnblogs.com/yoyo-524/p/6538547.html

yy自动语音接待机器人_人脸签到、发言记录,会议机器人来啦

会议机器人来啦~~在各种关于会议的吐槽中&#xff0c;很多人产生了一个需求&#xff1a;会议机器人。对于这一需求&#xff0c;安泽智能基于自身在人工智能行业的经验&#xff0c;研发出了适用于会议场景&#xff0c;具有会场引导、人脸识别签到、会议记录、与主持人串讲互动等…

TimeUnit

TimeUnit TimeUnit.DAYS 表示天 TimeUnit.SECONDS表示 秒

mysql中的函数有哪些?(1.数字函数)

一.函数类型 1.数学函数和控制流函数 2.字符串函数 3.日期和时间函数 4.系统信息函数和加密函数 二.解析数学函数及其包含的类型 1.数学函数是用来处理数值数据方面的运算&#xff0c;MySQL 中主要的数学函数有绝对值函数、三角函数、对数函数和随机函数等。 使用数学函数…

好分数阅卷3.0_自考通过率低?一位资深阅卷老师的自述

很多同学在咨询的时候&#xff0c;都会问老师自考的通过率高吗&#xff1f;老师会故意压分吗&#xff1f;自考分数背后究竟经历了怎么样的故事&#xff0c;今天我们一起来听一听自考阅卷老师的自述。1印象分很重要正常情况下&#xff0c;一份卷子的阅卷时间一般不会超过1.5分钟…

【BZOJ2300】【SCOI2011】糖果

差点就忘了还有差分约束这个东西……看见了就要学习一个 原题&#xff1a; 幼儿园里有N个小朋友&#xff0c;lxhgww老师现在想要给这些小朋友们分配糖果&#xff0c;要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心&#xff0c;总是会提出一些要求&#xff0c;比如小明不希…

mysql中的函数有哪些?(2.控制流函数)

一.函数类型 1.数学函数和控制流函数 2.字符串函数 3.日期和时间函数 4.系统信息函数和加密函数 二.解析控制流函数及其包含类型 1.控制流函数也称作“条件判断函数”&#xff0c;其根据满足的条件不同&#xff0c;执行相应的流程。 MySQL 中常见的控制流函数有 IF、IFNU…

st庞大股票股吧_黄金变石头!6倍大牛股提前锁定退市,市值蒸发98%,还有这些股票拉响警报(附名单)...

12月18日&#xff0c;*ST刚泰再次以跌停收盘&#xff0c;报0.53元/股&#xff0c;总市值仅7.89亿元。截至今日&#xff0c;公司已连续8日跌停&#xff0c;同时连续第19天收盘价低于1元/股&#xff0c;面值退市已是板上钉钉。戏剧性的是&#xff0c;与*ST刚泰行业、境遇相似的*S…

MYSQL的函数有哪些?(3.字符串函数)

一。字符串函数的类别及其作用 字符串函数主要用来处理字符串数据&#xff0c;MySQL 字符串函数主要有计算字符长度函数、字符串合并函数、字符串转换函数、字符串比较函数以及查找指定字符串位置函数等。 如下表所类 字符串函数 功能介绍 CHAR_LENGTH(str) 返回字符串 s…

多线程卖票问题

public class Ticket {private int number 30;public void sale(){if(number > 0){System.out.println(Thread.currentThread().getName() "卖出了" (number--) "票&#xff0c;剩余&#xff1a;" number);}}public static void main(String[] args…

在配置静态IP的时候遇到 :bringing up interface eth0 : error unknown connection

首先这是动态ip配置成功的结果 接下来切换到root用户来配置静态的 按照静态ip的配置方法配置好文件后&#xff08;具体过程这里就不多加说明&#xff09; 然后保存退出 当我们重启网卡的时候问题来了&#xff08;因为本人有点强迫症&#xff0c;多次重启了&#xff0c;结果还是…

解决java.net.ConnectException: Connection refused:connect报错

解决java.net.ConnectException: Connection refused:connect报错 2. 原因和解决&#xff1a; 1&#xff09;端口号被占用&#xff1a;杀死占用端口号&#xff08;一般为8080&#xff09;的进程&#xff0c;释放端口&#xff1b;彻底关闭 Tomcat 服务器&#xff0c;或者重新启…

discuz修改用户uid_你知道Linux中的UID和GID的含义吗

你知道Linux中的UID和GID的含义吗是不是大家看到UID(user id)和GID(group id)&#xff0c;都会立马说不就是用户和用户组ID。但是。当我们登陆Linux系统时&#xff0c;输入自己的用户名和密码&#xff0c;这里其实Linux系统并不认识你的用户名(或者换一种说法&#xff0c;不是依…

linux5种IO模型以及同步异步,阻塞非阻塞

同步&#xff08;synchronous&#xff09; IO和异步&#xff08;asynchronous&#xff09; IO&#xff0c;阻塞&#xff08;blocking&#xff09; IO和非阻塞&#xff08;non-blocking&#xff09;IO分别是什么&#xff0c;到底有什么区别&#xff1f;这个问题其实不同的人给出…

MYSQL的函数有哪些?(4.3时间与日期函数)

一。时间与日期函数的格式说明符 格式说明符 描述说明 %a 一星期中每天名称的缩写&#xff08;Sun...Sat&#xff09; %b 月份的缩写&#xff08;Jan...Dec&#xff09; %c 月份的数字表现形式&#xff08;0...12&#xff09; %D 带有英语后缀的一个月中的每一天的…