This repository has been archived on 2021-10-31. You can view files and clone it, but cannot push or open issues or pull requests.
sys_prog/midterm/lists/tests/test1.c

78 lines
1.3 KiB
C

#include <assert.h>
#include "basic_testing.h"
#include "../lists.h"
int main() {
struct list * LV[10];
struct list L[100];
struct list * l;
for(int i = 0; i < 100; ++i)
L[i].value = i;
for(int i = 0; i < 10; ++i) {
struct list * l = L + i*10;
LV[i] = l;
for (int j = 0; j < 5; ++j) {
l->next = l + 1;
l = l->next;
}
l->next = 0;
}
l = concatenate_all(10, LV);
for(int i = 0; i < 10; ++i)
for (int j = 0; j <= 5; ++j) {
assert(l);
assert_int_equal(l->value, i*10 + j);
l = l->next;
}
for(int i = 0; i < 10; ++i) {
if (i % 2 == 0) {
LV[i] = 0;
} else {
struct list * l = L + i*10;
LV[i] = l;
for (int j = 0; j < 5; ++j) {
l->next = l + 1;
l = l->next;
}
l->next = 0;
}
}
l = concatenate_all(10, LV);
for(int i = 1; i < 10; i += 2)
for (int j = 0; j <= 5; ++j) {
assert(l);
assert_int_equal(l->value, i*10 + j);
l = l->next;
}
for(int i = 0; i < 10; ++i) {
if (i == 7) {
struct list * l = L + i*10;
LV[i] = l;
for (int j = 0; j < 5; ++j) {
l->next = l + 1;
l = l->next;
}
l->next = 0;
} else {
LV[i] = 0;
}
}
l = concatenate_all(10, LV);
for (int j = 0; j <= 5; ++j) {
assert(l);
assert_int_equal(l->value, 70 + j);
l = l->next;
}
return 0;
}