summaryrefslogtreecommitdiffstats
path: root/libacc/tests/data/brackets.c
blob: bab88a2fdc6f69515a9886d1a162ca78f437847f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
void testBrackets(int* ar, int len) {
    int i;
    int errors = 0;
    for (i = 0; i < len; i++) {
        ar[i] = i;
    }
    for (i = 0; i < len; i++) {
        if (ar[i] != i) {
            printf("error: [%d] %d != %d\n", i, ar[i], i);
            errors++;
        }
    }
    printf("Errors: %d\n", errors);
}

void testBrackets2D(int** ar2D, int lenX, int lenY) {
    int x, y;
    int errors = 0;
    for (x = 0; x < lenX; x++) {
        for (y = 0; y < lenY; y++) {
            ar2D[x][y] = x * lenY + y;
        }
    }
    for (x = 0; x < lenX; x++) {
        for (y = 0; y < lenY; y++) {
            int expected = x * lenY + y;
            int val = ar2D[x][y];
            if (val != expected) {
                printf("error: [%d][%d] %d != %d\n", x, y, val, expected);
                errors++;
            }
        }
    }
    printf("2D Errors: %d\n", errors);
}

void testHeap() {
    int* ar = (int*) malloc(100);
    testBrackets(ar, 25);
    free(ar);
}

void testHeap2D() {
    int lenX = 10;
    int lenY = 5;
    int* ar = (int*) malloc(lenX * lenY * 4);
    int** ar2D = (int**) malloc(lenX * 4);
    int i;
    for(i = 0; i < lenX; i++) {
        ar2D[i] = ar + lenY * i;
    }
    testBrackets2D(ar2D, lenX, lenY);
    free(ar);
    free(ar2D);
}

int main() {
    testHeap();
    testHeap2D();
    return 0;
}