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 ...
随机推荐
- Spring4.14 事务异常 NoUniqueBeanDefinitionException: No qualifying bean of type [....PlatformTransactionManager]
环境为Spring + Spring mvc + mybatis:其中Spring版本为4.1.4 spring配置文件: <?xml version="1.0" encod ...
- Android名片扫描识别系统SDK
Android名片扫描识别系统SDK 一.Android名片扫描识别系统应用背景 这些年,随着移动互联的发展,APP应用成爆发式的增长,在很多APP中都涉及到对名片信息的录入,如移动CRM.移动端OA ...
- shell脚本,符号
在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ...
- javascript学习-对象与原型
javascript学习-对象与原型 Javascript语言是符合面向对象思想的.一般来说,面向对象思想需要满足以下三个基本要求: 封装,Javascript的对象可以自由的扩充成员变量和方法,自然 ...
- repeater绑定泛型list<string>
菜鸟D重出江湖,依然是菜鸟,囧!言归正传—— 工作中遇到一个repeater绑定的问题,数据源是一个list<string> 集合,然后在界面上使用<%#Eval()%>绑定. ...
- 纪中集训 Day 4
今天(其实是昨天)不考试= = 所以就刷题了 = = 早上无所事事,想把几道题刷过却很不爽的全删了 下午觉得不能这样了,把BZOJ 过了两道水的DP (计算几何根本不会啊QAQ) 晚上先水了一题之后, ...
- Java中abstract和interface的区别
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和inte ...
- STL源码剖析(读书笔记)
STL迭代器种类 2. 迭代器型别使用范例: 3. SGI STL空间配置器分为两级: 4. Vector 的内部存储方式为数组,随机访问迭代器. 5. Vector的size获取方式: 6. Vec ...
- redis安装(针对2.8以上版本)
1. 下载安装包 http://redis.io/ 2. 下载tcl/tck http://124.202.164.12/files/41060000061B56BD/downloads.source ...
- SaberRD之交流分析
交流分析(AC Analysis)也叫做小信号(Small-Signal)分析,也即分析电路的小信号频率响应,更严谨的定义是:分析工作在直流偏置电压下的非线性电路对于一定频率范围内的输入小信号的系统响 ...