首页 > 编程语言 > 详细

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

时间:2019-04-12 20:11:51      阅读:190      评论:0      收藏:0      [点我收藏+]

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所得结果测试完全通过,并且截图如下:

技术分享图片

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

原文:https://www.cnblogs.com/ltc0504/p/10697951.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!