Debug swcsa
[SXSI/TextCollection.git] / lzindex / test.c
1 #include "stdio.h"
2 #include "string.h"
3 #include "lztrie.h"
4
5 int main()
6 {
7     byte *text = (byte*)"ababacaaaaaaaaaaaaaaaaaaaffffffffffffffdddddddddssssssssssfffffffffffzzzbbbbbbbbbbbbbbbbbbbbbbbbbabababaccacacababababababababbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaacccdsfffffffffffffffffffffffaslköfjaösldjföasjdgajsdföljasdkfljaölsdjkföskjfölakjdföklajdökfjlaösldjföaögoiubvoixcupvozucvpouizxcpovui,qwner.,qwenrqbwe,rbqwmerbmwerbm";
8     ulong n = strlen((char *)text);
9     ulong i;
10     byte *newt = 0;
11     ulong l = 0;
12
13     lztrie lz = buildLZTrie(text, 0, n);
14         
15     printf("extracting:\n");
16     extract(lz, 0, n, &newt, &l);
17     for (i = 0; i < n; ++i)
18         if (newt[i]  != text[i]) {
19             printf("texts differ at %lu\n", i);
20             exit(0);
21         }
22
23     free(newt);
24
25     FILE *fp = fopen("output.lz", "wb");
26     saveLZTrie(lz, fp);
27     fclose(fp);
28     destroyLZTrie(lz);
29
30     fp = fopen("output.lz", "rb");
31     lz = loadLZTrie(fp);
32     fclose(fp);
33
34     printf("extracting:\n");
35     extract(lz, 0, n, &newt, &l);
36     for (i = 0; i < n; ++i)
37         if (newt[i]  != text[i]) {
38             printf("texts differ at %lu\n", i);
39             exit(0);
40         }
41
42     free(newt);
43
44     destroyLZTrie(lz);
45     return 0;
46 }