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]

基于JunitEclemmajacoco)实现一个主路径覆盖的测试 

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的更多相关文章

  1. BZOJ 4453: cys就是要拿英魂![后缀数组 ST表 单调栈类似物]

    4453: cys就是要拿英魂! Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 90  Solved: 46[Submit][Status][Discu ...

  2. POJ3693 Maximum repetition substring [后缀数组 ST表]

    Maximum repetition substring Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9458   Acc ...

  3. CPU状态信息us,sy,ni,id,wa,hi,si,st含义

    转自:http://blog.csdn.net/sasoritattoo/article/details/9318893 转自:http://fishermen.iteye.com/blog/1995 ...

  4. LCA最近公共祖先 ST+RMQ在线算法

    对于一类题目,是一棵树或者森林,有多次查询,求2点间的距离,可以用LCA来解决.     这一类的问题有2中解决方法.第一种就是tarjan的离线算法,还有一中是基于ST算法的在线算法.复杂度都是O( ...

  5. ST算法

    作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例 举例: 给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1. 方法:ST算法分成两部分:离线预处 ...

  6. poj3368(RMQ——ST)

    Frequent values Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 16543   Accepted: 5985 ...

  7. Scalaz(28)- ST Monad :FP方式适用变量

    函数式编程模式强调纯代码(pure code),主要实现方式是使用不可变数据结构,目的是函数组合(composability)最终实现函数组件的重复使用.但是,如果我们在一个函数p内部使用了可变量(m ...

  8. 泛函编程(34)-泛函变量:处理状态转变-ST Monad

    泛函编程的核心模式就是函数组合(compositionality).实现函数组合的必要条件之一就是参与组合的各方程序都必须是纯代码的(pure code).所谓纯代码就是程序中的所有表达式都必须是Re ...

  9. RMQ(ST算法)

    RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列a,回答若干询问RMQ(A,i,j)(i, j<=n),返回数列a中下标在i ...

随机推荐

  1. lufylegend库 LBitmapData LBitmap LSprite

    lufylegend库 LBitmapData LBitmap LSprite <!DOCTYPE html> <html lang="en"> <h ...

  2. puppet来管理文件和软件包

    puppet来管理文件和软件包 1 exec的使用,可以运行shell命令 为配置文件添加配置,指示写了关键部分,其他配置省略没写 代码示例如下: [root@pup manifests]# cat ...

  3. 从0到1学习node之简易的网络爬虫

    本文地址: http://www.xiabingbao.com/node/2017/01/19/node-spider.html 我们这节的目标是学习完本节课程后,能进行网页简单的分析与抓取,对抓取到 ...

  4. Vmware虚拟机安装Ubuntu 16.04 LTS(长期支持)版本+VMware tools安装

    今天用VMware虚拟机安装了Ubuntu 16.04,过程用点繁琐,顺便又安装了VMware tools,这样就可以全屏显示Ubuntu系统了,下面是具体的安装过程! 第一步:准备工作 1.下载Ub ...

  5. cmake的命令execute_process

    execute_process(COMMAND <cmd1> [args1...]] [COMMAND <cmd2> [args2...] [...]] [WORKING_DI ...

  6. 毕向东udp学习笔记2

    项目功能:  发送端读取控制台输入,然后udp发送 接收端一直接收,直到输入为886 相对于笔记1,修改了发送端代码,实现发送控制台的内容,接收端循环接收,当输入886时,停止发送 发送端: impo ...

  7. 使用T4模板生成POCO类

    为什么叫T4?因为简写为4个T. T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎.在 Visua ...

  8. 自己用到的相关Linux命令,谨以记录

    1.查看磁盘使用情况 df -h(方便看些) df -l(字节大小,不方便看) 2.查看根目录下文件/文件夹大小 du -sh /*(/*表示根目录下所有文件) 3.查看文件列表时显示文件大小 ll ...

  9. 从C#到TypeScript - async await

    总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...

  10. GDKOI2015滚粗记

    又是愉悦的滚粗了hahaha(特别不甘心啊啊啊) 其实去比赛每次都一样啦,就是每次吃饭睡觉补番考试评讲互黑跪烂什么的,这次就不用说了啦,先把老师要求写的东西贴出来再写点别的啦 这次暴露了很多问题,首先 ...