AlignDB-IntSpanXS

 view release on metacpan or  search on metacpan

benchmark/test_c.c  view on Meta::CPAN

    printf("is_nef_inf %d is_pos_inf %d\n", intspan_is_neg_inf(supplied),
           intspan_is_pos_inf(supplied));
    printf("is_inf %d is_fin %d\n", intspan_is_infinite(supplied),
           intspan_is_finite(supplied));

    intspan_clear(supplied);
    intspan_add_pair(supplied, 1, POS_INF - 1);
    intspan_basic_info(supplied);
    printf("is_nef_inf %d is_pos_inf %d\n", intspan_is_neg_inf(supplied),
           intspan_is_pos_inf(supplied));
    printf("is_inf %d is_fin %d\n", intspan_is_infinite(supplied),
           intspan_is_finite(supplied));

    intspan_clear(supplied);
    intspan_add_pair(supplied, NEG_INF, POS_INF - 1);
    intspan_basic_info(supplied);
    printf("is_nef_inf %d is_pos_inf %d\n", intspan_is_neg_inf(supplied),
           intspan_is_pos_inf(supplied));
    printf("is_inf %d is_fin %d\n", intspan_is_infinite(supplied),
           intspan_is_finite(supplied));
    printf("is_universal %d\n", intspan_is_universal(supplied));

    intspan_destroy(this_intspan);
    intspan_destroy(supplied);
    veci_destroy(vec);

    return 0;
}

int run_benchmark() {
    double start, end;
    int i;

    printf("\n test_add_range\n");
    for (i = 2; i <= 6; i++) {
        printf("step %d\n", i);
        start = get_time();
        test_add_range(i);
        end = get_time();
        printf("duration %f\n", end - start);
    }

    printf("\n test_add_vec\n");
    for (i = 2; i <= 5; i++) {
        printf("step %d\n", i);
        start = get_time();
        test_add_vec(i);
        end = get_time();
        printf("duration %f\n", end - start);
    }

    return 0;
}

void read_file(char **str, char *filename, size_t len) {
    FILE *fp;
    int buf_size = 512;
    char buf[buf_size];
    fp = fopen(filename, "rt");
    if (!fp) {
        fprintf(stderr, "can't open %s\n", filename);
        exit(1);
    }

    while (fgets(buf, buf_size, fp) != NULL) {
        if (len - strlen(*str) < buf_size) {
            len = strlen(*str) + buf_size + 1;
            kroundup32(len);
            *str = (char *) realloc(*str, len);
        }
        strncat(*str, buf, buf_size);
    }
    fclose(fp);
}

int run_file() {
    size_t len = 1024 * sizeof(char);
    char *runlist1 = (char *) malloc(len);
    char *runlist2 = (char *) malloc(len);

    read_file(&runlist1, "r1.yml", len);
    printf("%ld\n", strlen(runlist1));
    printf("%s", runlist1);

    free(runlist1);
    free(runlist2);

    return 0;
}

static int usage() {
    fprintf(stderr, "\n"
            "Usage:     test_c test\n"
            "           test_c benchmark\n"
            "           test_c file\n"
    );
    return 1;
}

int main(int argc, char *argv[]) {
    if (argc == 1) return usage();

    if (strcmp(argv[1], "test") == 0)
        run_test();
    else if (strcmp(argv[1], "benchmark") == 0)
        run_benchmark();
    else if (strcmp(argv[1], "file") == 0)
        run_file();
    else {
        fprintf(stderr, "unrecognized commad '%s'. Abort!\n", argv[1]);
        return 1;
    }
    return 0;
}



( run in 0.677 second using v1.01-cache-2.11-cpan-39bf76dae61 )