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
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#include <u.h>
#include <libn.h>
#include <libbio.h>
// -----------------------------------------------------------------------
// Point of entry for testing
error
test·newick()
{
error err;
bio·Tree t;
mem·Arena *mem;
Stream *fd[2];
io·Peeker rdr;
io·Putter wtr;
mem·Allocator al;
mem = mem·newarena(mem·sys, nil);
rdr = (io·Peeker){.get = &io·getbyte, .unget = &io·ungetbyte};
wtr = (io·Putter){.put = &io·putbyte, .putstr = &io·putstring};
al = (mem·Allocator) { .alloc = &mem·arenaalloc, .free = nil, };
fd[0] = io·open("/home/nolln/root/data/test/example.nwk", "r");
fd[1] = io·open("/home/nolln/root/data/test/example.proc.nwk", "w");
t = bio·readnewick(rdr, fd[0], al, mem);
err = bio·writenewick(t, wtr, fd[1]);
io·flush(fd[1]);
io·close(fd[0]);
io·close(fd[1]);
return 0;
}
error
test·fasta()
{
error err;
Stream *fd;
bio·Seq seq;
bio·FastaReader *rdr;
fd = io·open("/home/nolln/root/data/test/zika.fa", "r");
rdr = bio·newfastareader((io·Reader){.read = &io·read}, fd, mem·sys, nil);
err = 0;
while (!err) {
err = bio·readfasta(rdr, &seq);
if (!err) {
printf(">%s\n", seq.name);
}
}
io·close(fd);
return err <= 0 ? 0 : 1;
}
error
main()
{
error err;
if (err = test·newick(), err) {
errorf("test fail: newick");
}
if (err = test·fasta(), err) {
errorf("test fail: fasta");
}
}
|