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. JS与浏览器的几个兼容性问题

    第一个:有的浏览器不支持getElementsByClassName(),所以需要写一个function()来得到需要标签的class,然后进行class的增加.删除等操作. 第二个:在需要得到特定标 ...

  2. 微信小程序教程(第三篇)

    小程序的架构及实现机制,信道服务及会话管理 小程序架构及实现机制 小程序并不是 H5 应用,而是更偏向于传统的 CS 架构,它是基于数据驱动的模式,一切皆组件(视图组件).所以建议在开发小程序时不要以 ...

  3. API网关Ocelot 使用Polly 处理部分失败问题

    在实现API Gateway过程中,另外一个需要考虑的问题就是部分失败.这个问题发生在分布式系统中当一个服务调用另外一个服务超时或者不可用的情况.API Gateway不应该被阻断并处于无限期等待下游 ...

  4. 第七届蓝桥杯javaB组真题解析-凑算式(第三题)

    题目 /* 凑算式 B DEF A + --- + ------- = 10 C GHI (如果显示有问题,可以参见[图1.jpg]) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字. 比 ...

  5. C++编程练习(11)----“图的最短路径问题“(Dijkstra算法、Floyd算法)

    1.Dijkstra算法 求一个顶点到其它所有顶点的最短路径,是一种按路径长度递增的次序产生最短路径的算法. 算法思想: 按路径长度递增次序产生算法: 把顶点集合V分成两组: (1)S:已求出的顶点的 ...

  6. 网络请求 ---iOS

    //1.url要访问的资源 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; //2.请求,要向服务器请求 N ...

  7. 关于js 构造 onclick 方法中传递Guid参数问题

    转义字符单双引号用法:\'  与 \" 例如: $.getJSON("data.json", function(data, status, xhr) { $(" ...

  8. Dynamics CRM 2015-Form之添加Ribbon Button

    说到在CRM Form上添加Ribbon Button,那就不得不提到一个Tool:Ribbon Workbench,使用这个Tool,能为我们添加button带来不少便利. Ribbon Workb ...

  9. android学习6——canvas的save,restore作用

    先看如下代码 public class SaveRestoreActivity extends Activity { @Override public void onCreate(Bundle sav ...

  10. 一个不错的windows编程网址

    http://www.zklmc.com/ 含有MFC,C#,web开发资料