File: sort_tests.c

package info (click to toggle)
apophenia 1.0%2Bds-7
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 2,904 kB
  • sloc: ansic: 19,479; makefile: 374; awk: 124; sh: 105; sed: 32
file content (45 lines) | stat: -rw-r--r-- 1,536 bytes parent folder | download | duplicates (4)
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
//for inclusion into sort_example.c

void check_sorting1(apop_data *d){
    double last_val = -INFINITY;
    double last_val2 = -INFINITY;
    for (int i=0; i < d->matrix->size1; i++){
        //Check for correct sort two columns deep.
        //Col 0 is all ones, so skip it.
        double this_val = apop_data_get(d, i, 1);
        double this_val2 = apop_data_get(d, i, 2);
        assert(this_val >= last_val);
        if (this_val == last_val)
            assert(this_val2 >= last_val2);
        last_val = this_val;
        last_val2 = this_val2;
    }
}

void check_sorting2(apop_data *d){
    double last_val = -INFINITY;
    double last_val2 = -INFINITY;
    char *last_str = "Aye";
    char *last_str2 = "Dem";
    for (int i=0; i < *d->textsize; i++){
        //Check for correct sort two columns deep.
        //Col 0 is all ones, so skip it.
        char *this_str = d->text[i][1];
        char *this_str2 = d->text[i][0];
        double this_val = apop_data_get(d, i, 1);
        double this_val2 = apop_data_get(d, i, 2);
        assert(strcasecmp(this_str, last_str) >=0);
        if (!strcasecmp(this_str, last_str)){
            assert(strcasecmp(this_str2, last_str2) >=0);
            if (!strcasecmp(this_str2,last_str2)){
                assert(this_val >= last_val);
                if(this_val == last_val)
                    assert(this_val2 >= last_val2);
            }
        }
        last_str = this_str;
        last_str2 = this_str2;
        last_val = this_val;
        last_val2 = this_val2;
    }
}