• 基于VS快速排序的单元测试


    1.选择开发工具

    1.1由于Visual stdio 已经安装,所以运行界面如下图所示:

    2.进行单元测试

    2.1用Visual stdio 2017创建一个新项目(快速排序)如下图所示:


    其中程序如下所示:

    #include<stdio.h>
    
    void swap(int &a, int &b)
    {
    	int t = a;
    	a = b;
    	b = t;
    }
    
    void quick(int *a, int s, int t)
    {
    	int i = s, j = t + 1;
    	do
    	{
    		do i++; while (a[i] > a[s]);
    		do j--; while (a[j] < a[s]);
    		if (i < j) 
    			swap(a[i], a[j]);
    	} while (i < j);
    	swap(a[s], a[j]);
    	if (s < j - 1)
    		quick(a, s, j - 1);
    	if (j + 1 < t)
    		quick(a, j + 1, t);
    }
    
    void print(int *a, int n)
    {
    	int i;
    	for (i = 0; i < n; i++)
    		printf("%d ", a[i]);
    	printf("\n");
    }
    int main()
    {
    	int a[1800], i;
    	for (i = 0; i < 1800; i++)
    		a[i] = 2300 + i;
    	quick(a, 0, 1799);
    	print(a, 10);
    	return 0;
    }
    

    2.2快速排序的结果如图所示:

    2.3对代码添加一个单元测试:


    单元测试核心代码如下所示:

            TEST_CLASS(UnitTest1)
    	{
    	    public:
    		
    		TEST_METHOD(TestMethod1)
    		{
    			int res[10] = { 4,3,2,1,0,-1,-2,-3,-4,-5 };
    			int test[10] = { 1,2,3,4,0,-1,-2,-3,-4,-5 };
    			quick(test, 0, 9);
    			for (int i = 0; i < 10; i++)
    			{
    				Assert::AreEqual(test[i], res[i]);
    			}
    		}
    
    		TEST_METHOD(TestMethod2)
    		{
    			int res[10] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1 };
    			int test[10] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1 };
    			quick(test, 0, 9);
    			for (int i = 0; i < 10; i++)
    			{
    				Assert::AreEqual(test[i], res[i]);
    			}
    		}
    
    	};
    

    2.4从文件中找到依赖项地址:

    3.最后结果分析

    3.1所得结果测试完全通过,并且截图如下:

  • 相关阅读:
    浏览器渲染页面
    递归求1-100之和
    border属性
    ES6 Class
    数组去重
    get、post请求
    对象冒充继承
    原型链继承
    实现JS数据拷贝
    【转】centos升级curl版本
  • 原文地址:https://www.cnblogs.com/ltc0504/p/10697951.html
Copyright © 2020-2023  润新知