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

1.选择开发工具

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

1646658-20190412192106816-1130200009.png

2.进行单元测试

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

1646658-20190412192600127-1602522937.png
其中程序如下所示:

#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快速排序的结果如图所示:

1646658-20190412192723845-265252375.png

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

1646658-20190412193050629-1133136966.png
单元测试核心代码如下所示:

        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从文件中找到依赖项地址:

1646658-20190412193146212-653817744.png

3.最后结果分析

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

1646658-20190412193227532-1536268451.png

转载于:https://www.cnblogs.com/ltc0504/p/10697951.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值