From 25d553f96eef402d040d594b93fcbad010aff1da Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sat, 19 Aug 2017 19:51:21 +0200 Subject: [PATCH] Add more tests. --- tests/test-mdeque.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/tests/test-mdeque.c b/tests/test-mdeque.c index 94d6aed4..2f34fb01 100644 --- a/tests/test-mdeque.c +++ b/tests/test-mdeque.c @@ -32,6 +32,8 @@ START_COVERAGE DEQUE_DEF(deque, int) END_COVERAGE +#define OPL DEQUE_OPLIST(deque) + static void test_ti1(int n) { deque_t d; @@ -102,6 +104,44 @@ static void test1(void) 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) { test1(); @@ -109,4 +149,5 @@ int main(void) test_ti1(100); test_ti1(1000); test_ti1(10000); + test_it(); }