ST HW3
7. Use the following method printPrimes() for questions a-f below.
/*******************************************************
* Finds and prints n prime integers
* Jeff Offutt, Spring 2003
******************************************************/
public String printPrimes (int n)
{
int curPrime; // Value currently considered for primeness
int numPrimes; // Number of primes found so far.
boolean isPrime; // Is curPrime prime?
int [] primes = new int [MAXSIZE]; // The list of prime numbers. // Initialize 2 into the list of primes.
primes [0] = 2;
numPrimes = 1;
curPrime = 2;
while (numPrimes < n)
{
curPrime++; // next number to consider ...
isPrime = true;
for (int i = 0; i <= numPrimes-1; i++)
{ // for each previous prime.
if (isDivisible(primes[i],curPrime))
{ // Found a divisor, curPrime is not prime.
isPrime = false;
break; // out of loop through primes.
}
}
if (isPrime)
{ // save it!
primes[numPrimes] = curPrime;
numPrimes++;
}
} // End while // Print all the primes out.
for (int i = 0; i <= numPrimes-1; i++)
{
System.out.println ("Prime: " + primes[i]);
result = result + primes[i] + " ";
}
} // end printPrimes
}
(a) Draw the control flow graph for the printPrime() method.
Node 15 is the ending node, but I can't make it a Concentric circle.

(b) Consider test cases t1=(n=3) and t2=(n=5). Although these tour the same prime paths in ptintPrimes(), they do not necessarily find the same faults. Design a simple fault that t2 would be more likely to discover than t1 would.
When MAXPRIME = 3 or 4, t2 will overflow but it is OK for t1.
(c) For printPrimes(), find a test case such that the corresponding test path visits the edge that connects the beginning of the while statement to the for statement withtout going through the body of the while loop.
t = (n=1)
(d)
Node Coverage:
TR = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
Test Path:[1, 2, 3, 4, 5, 6, 7, 5, 6, 8, 9, 10, 11, 2, 12, 13, 14, 13, 15]
Edge Coverage:
TR = {(1,2), (2,3), (3,4), (4,5), (5,6), (5,9), (6,7), (7,5) , (6,8), (8,9), (9,10), (10,11), (9,11), (11,2), (2,12), (12,13), (13,14), (14,13), (13,15)}
Test Path: [1, 2, 3, 4, 5, 6, 7, 5, 6, 8, 9, 10, 11, 2, 12, 13, 14, 13, 15]
[1, 2, 3, 4, 5, 9, 11, 2, 12, 13, 14, 13, 15]
Prime Path Coverage:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 11]
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 9, 10, 11]
[1, 2, 3, 4, 5, 9, 11]
[1, 2, 12, 13, 14]
[1, 2, 12, 15]
[2, 3, 4, 5, 6, 8, 9, 10, 11, 2]
[2, 3, 4, 5, 6, 8, 9, 11, 2]
[2, 3, 4, 5, 9, 10, 11, 2]
[2, 3, 4, 5, 9, 11, 2]
[3, 4, 5, 6, 8, 9, 10, 11, 2, 3]
[3, 4, 5, 6, 8, 9, 11, 2, 3]
[3, 4, 5, 6, 8, 9, 10, 11, 2, 12, 13, 14]
[3, 4, 5, 6, 8, 9, 11, 2, 12, 13, 14]
[3, 4, 5, 6, 8, 9, 10, 11, 2, 12, 13, 15]
[3, 4, 5, 6, 8, 9, 11, 2, 12, 13, 15]
[3, 4, 5, 9, 10, 11, 2, 12, 13, 14]
[3, 4, 5, 9, 11, 2, 12, 13, 14]
[3, 4, 5, 9, 11, 2, 12, 13, 15]
[3, 4, 5, 9, 10, 11, 2, 12, 13, 15]
[4, 5, 6, 8, 9, 10, 11, 2, 3, 4]
[4, 5, 6, 8, 9, 11, 2, 3, 4]
[4, 5, 9, 11, 2, 3, 4]
[4, 5, 9, 10, 11, 2, 3, 4]
[5, 6, 8, 9, 10, 11, 2, 3, 4, 5]
[5, 6, 8, 9, 11, 2, 3, 4, 5]
[5, 9, 10, 11, 2, 3, 4, 5]
[5, 9, 11, 2, 3, 4, 5]
[5, 6, 7, 5]
[6, 8, 9, 10, 11, 2, 3, 4, 5, 6]
[6, 8, 9, 11, 2, 3, 4, 5, 6]
[6, 7, 5, 6]
[7, 5, 6, 7]
[7, 5, 6, 8, 9, 10, 11, 2, 3, 4]
[7, 5, 6, 8, 9, 11, 2, 3, 4]
[7, 5, 6, 8, 9, 10, 11, 2, 12, 13, 14]
[7, 5, 6, 8, 9, 11, 2, 12, 13, 14]
[7, 5, 6, 8, 9, 11, 2, 12, 13, 15]
[7, 5, 6, 8, 9, 10, 11, 2, 12, 13, 15]
[7, 5, 9, 10, 11, 2, 3, 4]
[7, 5, 9, 11, 2, 3, 4]
[7, 5, 9, 10, 11, 2, 12, 13, 14]
[7, 5, 9, 11, 2, 12, 13, 14]
[7, 5, 9, 10, 11, 2, 12, 13, 15]
[7, 5, 9, 11, 2, 12, 13, 15]
[8, 9, 10, 11, 2, 3, 4, 5, 6, 7]
[8, 9, 11, 2, 3, 4, 5, 6, 7]
[8, 9, 10, 11, 2, 3, 4, 5, 6, 8]
[8, 9, 11, 2, 3, 4, 5, 6, 8]
[9, 10, 11, 2, 3, 4, 5, 6, 8, 9]
[9, 11, 2, 3, 4, 5, 6, 8, 9]
[9, 10, 11, 2, 3, 4, 5, 9]
[9, 11, 2, 3, 4, 5, 9]
[10, 11, 2, 3, 4, 5, 6, 8, 9, 10]
[10, 11, 2, 3, 4, 5, 9, 10]
[11, 2, 3, 4, 5, 6, 8, 9, 10, 11]
[11, 2, 3, 4, 5, 6, 8, 9, 11]
[11, 2, 3, 4, 5, 9, 10, 11]
[11, 2, 3, 4, 5, 9, 11]
[13, 14, 13]
[14, 13, 14]
[14, 13, 15]
基于Junit及Eclemma( jacoco)实现一个主路径覆盖的测试
My Codes:
https://github.com/newff/st-lab1/tree/newff-hw-3
/**
*
*/
package printPrime; import static org.junit.Assert.*; import org.junit.Before;
import org.junit.Test; /**
* @author lonely
*
*/
public class printPrimeTest { private printPrime printPrime; /**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
printPrime = new printPrime();
} /**
* Test method for {@link printPrime.printPrime#printPrimes(int)}.
*/
@Test
public void testPrintPrimes() {
// assertEquals("2 3 ",printPrime.printPrimes(2));
// assertEquals("2 3 5 ",printPrime.printPrimes(3));
assertEquals("2 3 5 7 ",printPrime.printPrimes(4));
} }
when n = 2

when n >= 3

if MAXPRIME = 3, n = 4

ST HW3的更多相关文章
- BZOJ 4453: cys就是要拿英魂![后缀数组 ST表 单调栈类似物]
4453: cys就是要拿英魂! Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 90 Solved: 46[Submit][Status][Discu ...
- POJ3693 Maximum repetition substring [后缀数组 ST表]
Maximum repetition substring Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9458 Acc ...
- CPU状态信息us,sy,ni,id,wa,hi,si,st含义
转自:http://blog.csdn.net/sasoritattoo/article/details/9318893 转自:http://fishermen.iteye.com/blog/1995 ...
- LCA最近公共祖先 ST+RMQ在线算法
对于一类题目,是一棵树或者森林,有多次查询,求2点间的距离,可以用LCA来解决. 这一类的问题有2中解决方法.第一种就是tarjan的离线算法,还有一中是基于ST算法的在线算法.复杂度都是O( ...
- ST算法
作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例 举例: 给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1. 方法:ST算法分成两部分:离线预处 ...
- poj3368(RMQ——ST)
Frequent values Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16543 Accepted: 5985 ...
- Scalaz(28)- ST Monad :FP方式适用变量
函数式编程模式强调纯代码(pure code),主要实现方式是使用不可变数据结构,目的是函数组合(composability)最终实现函数组件的重复使用.但是,如果我们在一个函数p内部使用了可变量(m ...
- 泛函编程(34)-泛函变量:处理状态转变-ST Monad
泛函编程的核心模式就是函数组合(compositionality).实现函数组合的必要条件之一就是参与组合的各方程序都必须是纯代码的(pure code).所谓纯代码就是程序中的所有表达式都必须是Re ...
- RMQ(ST算法)
RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列a,回答若干询问RMQ(A,i,j)(i, j<=n),返回数列a中下标在i ...
随机推荐
- linux下的Source命令的基本功能
source命令用法:source FileName作用:在当前bash环境下读取并执行FileName中的命令.注:该命令通常用命令“.”来替代.如:source .bash_rc 与 . .bas ...
- IEcss样式,行高的问题
input的文本内容显示一定要用line-height,不然会出现内容错位的问题
- 使用IntelliJ IDEA开发SpringMVC网站(一)开发环境
使用IntelliJ IDEA开发SpringMVC网站(一)开发环境 摘要: 主要讲解初期的开发环境搭建,Maven的简单教学. 访问GitHub下载最新源码:https://github.com/ ...
- (一)Hololens Unity 开发环境搭建(Mac BOOTCAMP WIN10)
(一)Hololens Unity 开发环境搭建(Mac BOOTCAMP WIN10) 系统要求 64位 Windows 10 除了家庭版的 都支持 ~ 64位CPU CPU至少是四核心以上~ 至少 ...
- BZOJ2002(分块)
Bounce 弹飞绵羊 Time Limit:10000MS Memory Limit:265216KB 64bit IO Format:%lld & %llu Submit ...
- MyBatis 源码分析——动态代理
MyBatis框架是如何去执行SQL语句?相信不只是你们,笔者也想要知道是如何进行的.相信有上一章的引导大家都知道SqlSession接口的作用.当然默认情况下还是使用DefaultSqlSessio ...
- Google HTML/CSS 编码规范
Google HTML/CSS 规范 本文介绍了 Google 推荐的 HTML 和 CSS 编写格式规范,以建立良好的个人编码习惯. 1.通用样式规范 省略图片.样式.脚本以及其他媒体文件 URL ...
- linux-Centos6.5中nginx1.63源码安装
我自己在学习的过程中,搜索网上的教程,碰了很多壁,终于总结出自己一套易于配置和管理的安装方法 如果是用于生产环境,不用盲目追求最新版本,跟着我这个来就好了. 安装前预热: 1.创建nginx专属用户: ...
- 进程——wait与waitpid、僵尸进程与孤儿进程
僵尸进程:子进程终止了,但是父进程没有回收子进程的资源PCB.使其成为僵尸进程 孤儿进程:父进程先与子进程结束了,使得子进程失去了父进程,这个时候子进程会被1号进程init进程领养,成为孤儿进程 为了 ...
- 在 Linux OpenVPN 服务端吊销客户端证书
OpenVPN服务器与 VPN 客户端之间的身份验证, 主要是通过证书来进行的.有时我们需要禁止某个用户连接 VPN 服务器,则将其证书吊销即可.要吊销(Revoke) OpenVPN 客户端证书, ...