Add more test for dual push list
This commit is contained in:
1 parent
fd885bdb19
commit
bacf2b9eec
1 file changed
+135
@@ -359,12 +359,147 @@ static void test_dual_push1(void)
|
|||||||
list2_double_clear(list);
|
list2_double_clear(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_dual_it1(void)
|
||||||
|
{
|
||||||
|
list2_double_t list;
|
||||||
|
list2_double_it_t it, it2;
|
||||||
|
double d;
|
||||||
|
|
||||||
|
list2_double_init(list);
|
||||||
|
|
||||||
|
list2_double_it(it, list);
|
||||||
|
assert(list2_double_end_p(it));
|
||||||
|
list2_double_it_end(it, list);
|
||||||
|
assert(list2_double_end_p(it));
|
||||||
|
|
||||||
|
for(double e = 0.0; e < 1024.0 ; e += 1.0)
|
||||||
|
list2_double_push_front(list, e);
|
||||||
|
|
||||||
|
list2_double_it(it, list);
|
||||||
|
assert(!list2_double_end_p(it));
|
||||||
|
list2_double_it_set (it2, it);
|
||||||
|
assert(list2_double_it_equal_p(it2, it));
|
||||||
|
list2_double_it_end(it, list);
|
||||||
|
assert(!list2_double_it_equal_p(it2, it));
|
||||||
|
assert(list2_double_end_p(it));
|
||||||
|
assert(!list2_double_end_p(it2));
|
||||||
|
assert(*list2_double_ref(it2) == 0.0);
|
||||||
|
|
||||||
|
d = 0.0;
|
||||||
|
for(list2_double_it(it, list) ;
|
||||||
|
!list2_double_end_p(it) ;
|
||||||
|
list2_double_next(it) ) {
|
||||||
|
double e = *list2_double_cref(it);
|
||||||
|
assert(e == d);
|
||||||
|
if (list2_double_last_p(it))
|
||||||
|
assert (d == 1023.0);
|
||||||
|
d += 1.0;
|
||||||
|
}
|
||||||
|
assert (d == 1024.0);
|
||||||
|
|
||||||
|
// Insert in last
|
||||||
|
list2_double_it_end(it, list);
|
||||||
|
list2_double_insert(list, it, -1.0);
|
||||||
|
d = -1.0;
|
||||||
|
for(list2_double_it(it, list) ;
|
||||||
|
!list2_double_end_p(it) ;
|
||||||
|
list2_double_next(it) ) {
|
||||||
|
double e = *list2_double_cref(it);
|
||||||
|
assert(e == d);
|
||||||
|
if (list2_double_last_p(it))
|
||||||
|
list2_double_it_set(it2, it);
|
||||||
|
d += 1.0;
|
||||||
|
}
|
||||||
|
assert (d == 1024.0);
|
||||||
|
assert(*list2_double_back(list) == -1.0);
|
||||||
|
assert(*list2_double_front(list) == 1023.0);
|
||||||
|
|
||||||
|
// Insert in front
|
||||||
|
list2_double_insert(list, it2, 1024.0);
|
||||||
|
d = -1.0;
|
||||||
|
for(list2_double_it(it, list) ;
|
||||||
|
!list2_double_end_p(it) ;
|
||||||
|
list2_double_next(it) ) {
|
||||||
|
double e = *list2_double_cref(it);
|
||||||
|
assert(e == d);
|
||||||
|
d += 1.0;
|
||||||
|
}
|
||||||
|
assert (d == 1025.0);
|
||||||
|
assert(*list2_double_back(list) == -1.0);
|
||||||
|
assert(*list2_double_front(list) == 1024.0);
|
||||||
|
|
||||||
|
// Insert in between
|
||||||
|
list2_double_it(it, list) ;
|
||||||
|
list2_double_insert(list, it, -0.5);
|
||||||
|
d = -1.0;
|
||||||
|
for(list2_double_it(it, list) ;
|
||||||
|
!list2_double_end_p(it) ;
|
||||||
|
list2_double_next(it) ) {
|
||||||
|
double e = *list2_double_cref(it);
|
||||||
|
assert(e == d);
|
||||||
|
d += (d < 0.0) ? 0.5 : 1.0;
|
||||||
|
}
|
||||||
|
assert (d == 1025.0);
|
||||||
|
assert(*list2_double_back(list) == -1.0);
|
||||||
|
assert(*list2_double_front(list) == 1024.0);
|
||||||
|
|
||||||
|
// Remove in between
|
||||||
|
list2_double_it(it, list) ;
|
||||||
|
list2_double_next(it);
|
||||||
|
assert (*list2_double_cref(it) == -0.5);
|
||||||
|
list2_double_remove(list, it);
|
||||||
|
d = -1.0;
|
||||||
|
for(list2_double_it(it, list) ;
|
||||||
|
!list2_double_end_p(it) ;
|
||||||
|
list2_double_next(it) ) {
|
||||||
|
double e = *list2_double_cref(it);
|
||||||
|
assert(e == d);
|
||||||
|
if (list2_double_last_p(it))
|
||||||
|
list2_double_it_set(it2, it);
|
||||||
|
d += 1.0;
|
||||||
|
}
|
||||||
|
assert (d == 1025.0);
|
||||||
|
assert(*list2_double_back(list) == -1.0);
|
||||||
|
assert(*list2_double_front(list) == 1024.0);
|
||||||
|
|
||||||
|
// Remove front
|
||||||
|
list2_double_remove(list, it2);
|
||||||
|
d = -1.0;
|
||||||
|
for(list2_double_it(it, list) ;
|
||||||
|
!list2_double_end_p(it) ;
|
||||||
|
list2_double_next(it) ) {
|
||||||
|
double e = *list2_double_cref(it);
|
||||||
|
assert(e == d);
|
||||||
|
d += 1.0;
|
||||||
|
}
|
||||||
|
assert (d == 1024.0);
|
||||||
|
assert(*list2_double_back(list) == -1.0);
|
||||||
|
assert(*list2_double_front(list) == 1023.0);
|
||||||
|
|
||||||
|
// Remove back
|
||||||
|
list2_double_it(it, list);
|
||||||
|
list2_double_remove(list, it);
|
||||||
|
d = 0.0;
|
||||||
|
for(list2_double_it(it, list) ;
|
||||||
|
!list2_double_end_p(it) ;
|
||||||
|
list2_double_next(it) ) {
|
||||||
|
double e = *list2_double_cref(it);
|
||||||
|
assert(e == d);
|
||||||
|
d += 1.0;
|
||||||
|
}
|
||||||
|
assert (d == 1024.0);
|
||||||
|
assert(*list2_double_back(list) == 0.0);
|
||||||
|
assert(*list2_double_front(list) == 1023.0);
|
||||||
|
|
||||||
|
list2_double_clear(list);
|
||||||
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
test_uint();
|
test_uint();
|
||||||
test_mpz();
|
test_mpz();
|
||||||
test_dual_push1();
|
test_dual_push1();
|
||||||
|
test_dual_it1();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Reference in new issue
Block a user