chanler 发表于 2010-6-13 04:24:43

添加测试用例使得全面覆盖

想在一个排序的数组中用二进制搜索找到相应的数字。程序用二进制搜索是否在剩余的List中存在第一个数字。最简单的用例已经给出:
testcase1:existing element
action:Run./binsearch 1 1 3 5 7 9 15 17
expected result:找到数字
以下是gcov的输出结果,请添加测试用例使得全面覆盖
#include<stdio.h>
#include<stdlib.h>
int isElement(int value,int sortedArr[],int arrayLen){
if(arrayLen==0){
return 0;
}
else if(arrayLen==1){
return value==sortedArr;
}
else{
int midIndex=arrayLen/2;
int middleElement=sortedArr;
if(middleElement==value){
return 1;
}
else if(value<middleElement){
return isElement(value,sortedArr,midIndex);
}
else{
return isElement(value,sortedArr+midIndex,arrayLen-midIndex);
}}}
int main(int argc,char**argv){
int value,*sortedArr,arrayLen,i;
if(argc<2){
printf("Syntex error,ues:elm e e1 e2 e3...\n");
exit(EXIT_FAILURE);
}
value=atoi(argv);
arrayLen=argc-2;
sortedArr=malloc(sizeof(int)*arrayLen);
for(i=0;i<arrayLen;i++){
sortedArr=atoi(argv);
if(i>0&&sortedArr<sortedArr){
printf("Error:the list of values must be sorted\n");
exit(EXIT_FAILURE);
}}
if(isElement(value,sortedArr,arrayLen))
printf("The value was found\n");
else
printf("The value was not found\n");
return EXIT_SUCCESS;
}


hujin1229 发表于 2010-8-6 18:19:20

1、数组大小为0,没有数字的情况
2、数组有两个值的情况
3、数组有三个值的情况
页: [1]
查看完整版本: 添加测试用例使得全面覆盖