diff options
Diffstat (limited to 'sys/libbio/test.c')
-rw-r--r-- | sys/libbio/test.c | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/sys/libbio/test.c b/sys/libbio/test.c index 14f2b06..d38bbc1 100644 --- a/sys/libbio/test.c +++ b/sys/libbio/test.c @@ -2,6 +2,9 @@ #include <libn.h> #include <libbio.h> +#include <time.h> +#include "kseq.h" + // ----------------------------------------------------------------------- // Point of entry for testing @@ -32,6 +35,7 @@ test·newick() io·close(fd[0]); io·close(fd[1]); + mem·freearena(mem); return 0; } @@ -44,16 +48,39 @@ test·fasta() bio·Seq seq; bio·FastaReader *rdr; + clock_t t; + fd = io·open("/home/nolln/root/data/test/zika.fa", "r"); - rdr = bio·newfastareader((io·Reader){.read = &io·read}, fd, mem·sys, nil); + /* Benchmark against Heng */ +#if 0 + int n, slen; + kseq_t *kseq; + + t = clock(); + kseq = kseq_init(fd); + while (kseq_read(kseq) >= 0) { + ++n, slen += kseq->seq.l; + } + t = clock() - t; + printf("heng's code took %f ms to execute\n", 1000.*t/CLOCKS_PER_SEC); + + kseq_destroy(kseq); + + io·seek(fd, 0, seek·set); +#endif + + rdr = bio·openfasta((io·Reader){.read = &io·read}, fd, mem·sys, nil); + + t = clock(); err = 0; while (!err) { err = bio·readfasta(rdr, &seq); - if (!err) { - printf(">%s\n", seq.name); - } } + t = clock() - t; + printf("nick's code took %f ms to execute\n", 1000.*t/CLOCKS_PER_SEC); + bio·closefasta(rdr); + io·close(fd); return err <= 0 ? 0 : 1; |