1、服务计算概论作业报告慕测平台测试报告(二) 学 院:计算机学院 姓 名:赵红娜 专 业:软件工程 学 号:3130608003 班 级:1301 完成日期:2016-10-22 2016年10月22日1.题目针对以下4个项目编写测试用例进行测试。代码如下:题目(1)/ BinaryHeap class/ CONSTRUCTION: with optional capacity (that defaults to 100)/ *PUBLIC OPERATIONS*/ void insert( x ) - Insert x/ int deleteMin( )- Return and remove
2、smallest item/ int findMin( ) - Return smallest item/ boolean isEmpty( ) - Return true if empty; else false/ boolean isFull( ) - Return true if full; else false/ void makeEmpty( ) - Remove all items/ *ERRORS*/ Throws Overflow if capacity exceeded/* * Implements a binary heap. * Note that all matchin
3、g is based on the compareTo method. * author Mark Allen Weiss */public class BinaryHeap / invariant wellFormed(); /* * Construct the binary heap. */ public BinaryHeap( ) this( DEFAULT_CAPACITY ); /* * Construct the binary heap. * param capacity the capacity of the binary heap. */ / requires capacity
4、 0; / ensures isEmpty(); public BinaryHeap( int capacity ) currentSize = 0; array = new int capacity + 1 ; /* * Insert into the priority queue, maintaining heap order. * Duplicates are allowed. * param x the item to insert. * exception Overflow if container is full. */ public void insert( int x ) th
5、rows Overflow if( isFull( ) ) throw new Overflow( ); / Percolate up int hole = +currentSize; for( ; hole 1 & x array hole / 2 ; hole /= 2 ) array hole = array hole / 2 ; array hole = x; /* * Find the smallest item in the priority queue. * return the smallest item, or null, if empty. */ public int fi
6、ndMin( ) if( isEmpty( ) ) return -1; return array 1 ; boolean wellFormed() if(array=null) /array!=null return false; if(currentSize=array.length) /currentSize=0; currentSizearray.length; return false; for(int i=1; icurrentSize; i+) if(i*2 array2*i) return false; if(i*2 + 1array2*i+1) return false; r
7、eturn true; /* * Remove the smallest item from the priority queue. * return the smallest item, or null, if empty. */ public int deleteMin( ) if( isEmpty( ) ) return -1; int minItem = findMin( ); array 1 = array currentSize- ; percolateDown( 1 ); return minItem; /* * Establish heap order property fro
8、m an arbitrary * arrangement of items. Runs in linear time. */ public void buildHeap( ) for( int i = currentSize / 2; i 0; i- ) percolateDown( i ); /* * Test if the priority queue is logically empty. * return true if empty, false otherwise. */ public boolean isEmpty( ) return currentSize = 0; /* * T
9、est if the priority queue is logically full. * return true if full, false otherwise. */ public boolean isFull( ) return currentSize = array.length - 1; /* * Make the priority queue logically empty. */ / ensures isEmpty(); public void makeEmpty( ) currentSize = 0; private static final int DEFAULT_CAP
10、ACITY = 100; private int currentSize; / Number of elements in heap private int array; / The heap array /* * Internal method to percolate down in the heap. * param hole the index at which the percolate begins. */ private void percolateDown( int hole ) int child; int tmp = array hole ; for( ; hole * 2
11、 = currentSize; hole = child ) child = hole * 2; if( child != currentSize & array child + 1 array child ) child+; if( array child tmp ) array hole = array child ; else break; array hole = tmp; /* * Exception class for access in full containers * such as stacks, queues, and priority queues. * author
12、Mark Allen Weiss */public class Overflow extends Exception题目(2)import java.util.Comparator;import java.util.Random;/* * A class that contains several sorting routines, * implemented as static methods. * Arrays are rearranged with smallest item first, * using compareTo. * author Mark Allen Weiss */pu
13、blic final class Sorting /* * Simple insertion sort. * param a an array of Comparable items. */ public void insertionSort( int a ) int j; for( int p = 1; p 0 & tmpa j - 1 ; j- ) a j = a j - 1 ; a j = tmp; public boolean isSorted(int a) for(int i=0; iai+1) return false; return true; public static voi
14、d quicksort( int a ) quicksort( a, 0, a.length - 1 ); private static final int CUTOFF = 10; public static final void swapReferences( Object a, int index1, int index2 ) Object tmp = a index1 ; a index1 = a index2 ; a index2 = tmp; public static final void swap(int a,int index1,int index2) int tmp = a
15、 index1 ; a index1 = a index2 ; a index2 = tmp; private static int median3( int a, int left, int right ) int center = ( left + right ) / 2; if( a center a left ) swap( a, left, center ); if( a right a left ) swap( a, left, right ); if( a right a center ) swap( a, center, right ); / Place pivot at po
16、sition right - 1 swap( a, center, right - 1 ); return a right - 1 ; private static void quicksort( int a, int left, int right) if( left + CUTOFF = right ) int pivot = median3( a, left, right ); int i = left, j = right - 1; for( ; ; ) while( a +i pivot ) if( i j ) swap( a, i, j ); else break; swap( a
17、, i, right - 1 ); / Restore pivot quicksort( a, left, i - 1 ); / Sort small elements quicksort( a, i + 1, right ); / Sort large elements else / Do an insertion sort on the subarray insertionSort( a, left, right ); private static void insertionSort( int a, int left, int right ) for( int p = left + 1;
18、 p left & tmp a j - 1 ; j- ) a j = a j - 1 ; a j = tmp; private static final int NUM_ITEMS = 1000; private static int theSeed = 1;题目(3)public class Statistics /* * * param numbers * return the length of the array */ public int calLength(int numbers) int length = numbers.length; return length; /* * *
19、 param numbers * return the mean value of the array */ public double calMean(int numbers) int length = calLength(numbers); double sum; sum = 0.0; for (int i = 0; i length; i+) sum += numbersi; double mean = sum / (double) length; return mean; /* * * param numbers * return the var value of the array
20、*/ public double calVar(int numbers) int length = calLength(numbers); double mean = calMean(numbers); double varsum = 0.0; for (int i = 0; i 0 & triangle.lborderA 0 & triangle.lborderB 0 & triangle.lborderC = Long.MAX_VALUE) / check if subtraction of two border larger than the third if (diffOfBorder
21、s(triangle.lborderA, triangle.lborderB) triangle.lborderC & diffOfBorders(triangle.lborderB, triangle.lborderC) triangle.lborderA & diffOfBorders(triangle.lborderC, triangle.lborderA) b) ? (a - b) : (b - a); /* * get length of borders */ public long getBorders() long borders = new long3; borders0 =
22、this.lborderA; borders1 = this.lborderB; borders2 = this.lborderC; return borders; 2.软件工具Eclipse3.测试代码题目(1)import org.junit.After;import org.junit.Before;import org.junit.Test;import org.junit.Assert;public class BinaryHeapTest Before public void setUp() throws Exception After public void tearDown() throws Exception Test public void test() BinaryHeap heap1 = new BinaryHeap(1024); for (int i = 1024; i 0; i-) try heap1.insert(i); catch (Overflow e) Assert.fail(e.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1