找回密码
 新注册用户
搜索
查看: 2295|回复: 0

关于测试(scaffolding),请帮忙

[复制链接]
发表于 2005-5-30 04:24:50 | 显示全部楼层 |阅读模式
文字
文字
#define assert(v) { if ((v) == 0) printf("  binarysearch bug %d %d\n", i, n); }
int seqsearch3(DataType t)
{        int i;
        DataType hold = x[n];
        x[n] = t;
        for (i = 0; ; i+=8) {
                if (x == t)   {       break; }
                if (x[i+1] == t) { i += 1; break; }
                if (x[i+2] == t) { i += 2; break; }
                if (x[i+3] == t) { i += 3; break; }
                if (x[i+4] == t) { i += 4; break; }
                if (x[i+5] == t) { i += 5; break; }
                if (x[i+6] == t) { i += 6; break; }
                if (x[i+7] == t) { i += 7; break; }
        }
        x[n] = hold;
        if (i == n)
                return -1;
        else
                return i;
}
#define s seqsearch3
void test(int maxn)
{        int i;
        for (n = 0; n <= maxn; n++) {
                printf("n=%d\n", n);
                /* distinct elements (plus one at top) */
                for (i = 0; i <= n; i++)
                        x = 10*i;
                for (i = 0; i < n; i++) {
                        assert(s(10*i)     ==  i);
                        assert(s(10*i - 5) == -1);
                }
                assert(s(10*n - 5) == -1);
                assert(s(10*n)     == -1);
        }
}

既然对数组x是按照x=10*i 来赋值,那么s(10*i)就肯定是等于 i 的,那么assert(s(10*i)  ==  i ) 和 assert(s(10*i - 5) == -1) 会在什么情况下起作用呢?还有 assert(s(10*n - 5) == -1) 和 assert(s(10*n)     == -1) 又会在什么情况下起作用呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-9-28 23:14

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表