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. spring mvc 入门示例

    classpath <?xml version="1.0" encoding="UTF-8"?> <classpath> <cla ...

  2. 你不知道的document.write

    使用document.write向文档输出写内容; document.write用法:document.write("要输出的内容"); 其实document.write()有两种 ...

  3. Win下JDK的安装和简单使用教程

    下载安装 一.从官网下载 1.百度jdk 然后点击像图片中指出的那个链接(www.oracle.com是java的官网) 2.下载(先点击那个 选择框 同意许可协议) 然后根据自己的电脑选择下载 64 ...

  4. webAppbuilder微件使用教程3 地理处理微件

    webAppbuilder微件使用教程 --微件使用进阶地理处理微件 By 李远祥 地理处理是GIS解决问题的关键部分,也是其灵魂所在.由于WebAppBuilder框架的限制,用户如果想要非常灵活的 ...

  5. vs2010 入门程序

    #include <stdio.h> int main(){ printf("hello world!\n"); getchar(); //此处避免执行完程序自动退出 ...

  6. javascript学习-对象与原型

    javascript学习-对象与原型 Javascript语言是符合面向对象思想的.一般来说,面向对象思想需要满足以下三个基本要求: 封装,Javascript的对象可以自由的扩充成员变量和方法,自然 ...

  7. Java获取http和https协议返回的json数据

    现在很多公司都是将数据返回一个json,而且很多第三方接口都是返回json数据,而且还需要使用到http协议,http协议是属于为加密的协议,而https协议需要SSL证书,https是将用户返回的信 ...

  8. liunx下search文件内容的几种方式

    第一种.使用vim来search内容 /regex_word,从上到下匹配 ?regex_word,从下到上匹配 n是获取下一个匹配字符串,N是获取上一个匹配字符串. 第二种.使用grep命令 gre ...

  9. Javascript面对对象. 第四篇

    原型模式创建对象也有自己的缺点,它省略看构造函数传参初始化这一过程,带来的缺点就是初始化的值都是一致的. 而原型最大的缺点就是它优点,那就是共享. 原型中所有属性是被很多实例共享的,共享对于函数非常合 ...

  10. android学习7——canvas.concat(Matrix matrix)作用

    canvas.concat的作用可以理解成对matrix的变换应用到canvas上的所有对象. 看下面的代码. public class ConcatMatrixActivity extends Ac ...