Add more tests.
This commit is contained in:
1 parent
519a74751c
commit
25d553f96e
1 file changed
+41
@@ -32,6 +32,8 @@ START_COVERAGE
|
|||||||
DEQUE_DEF(deque, int)
|
DEQUE_DEF(deque, int)
|
||||||
END_COVERAGE
|
END_COVERAGE
|
||||||
|
|
||||||
|
#define OPL DEQUE_OPLIST(deque)
|
||||||
|
|
||||||
static void test_ti1(int n)
|
static void test_ti1(int n)
|
||||||
{
|
{
|
||||||
deque_t d;
|
deque_t d;
|
||||||
@@ -102,6 +104,44 @@ static void test1(void)
|
|||||||
deque_clear(d);
|
deque_clear(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_it(void)
|
||||||
|
{
|
||||||
|
M_LET(d, OPL) {
|
||||||
|
for(size_t i = 0; i < 1997; i ++) {
|
||||||
|
deque_push_back(d, 1997+i);
|
||||||
|
deque_push_front(d, 1996-i);
|
||||||
|
}
|
||||||
|
int s = 0;
|
||||||
|
for M_EACH(it, d, OPL) {
|
||||||
|
assert (*it == s++);
|
||||||
|
}
|
||||||
|
deque_it_t it;
|
||||||
|
deque_it(it, d);
|
||||||
|
assert (!deque_end_p(it));
|
||||||
|
assert (!deque_last_p(it));
|
||||||
|
assert (*deque_cref(it) == 0);
|
||||||
|
deque_it_last(it, d);
|
||||||
|
assert (!deque_end_p(it));
|
||||||
|
assert (deque_last_p(it));
|
||||||
|
assert (*deque_ref(it) == 1997+1996);
|
||||||
|
deque_next(it);
|
||||||
|
assert (deque_last_p(it));
|
||||||
|
assert (deque_end_p(it));
|
||||||
|
deque_it_last(it, d);
|
||||||
|
while (!deque_end_p(it)) {
|
||||||
|
deque_previous(it);
|
||||||
|
assert (deque_end_p(it) || !deque_last_p(it));
|
||||||
|
}
|
||||||
|
deque_it_end(it, d);
|
||||||
|
assert (deque_end_p(it));
|
||||||
|
assert (deque_last_p(it));
|
||||||
|
deque_it_t it2;
|
||||||
|
deque_it_set(it2, it);
|
||||||
|
assert (deque_end_p(it2));
|
||||||
|
assert (deque_it_equal_p(it, it2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
test1();
|
test1();
|
||||||
@@ -109,4 +149,5 @@ int main(void)
|
|||||||
test_ti1(100);
|
test_ti1(100);
|
||||||
test_ti1(1000);
|
test_ti1(1000);
|
||||||
test_ti1(10000);
|
test_ti1(10000);
|
||||||
|
test_it();
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user