1:
2: #include <stdio.h>
3: #include <anthy/dic.h>
4: #include <anthy/diclib.h>
5: #include <anthy/matrix.h>
6:
7: static void
8: change_endian(struct matrix_image *im)
9: {
10: int i;
11: for (i = 0; i < im->size; i++) {
12: im->image[i] = anthy_dic_htonl(im->image[i]);
13: }
14: }
15:
16: static void
17: zero_matrix(void)
18: {
19: struct sparse_matrix *m;
20: struct matrix_image *mi;
21: int *im, e;
22: m = anthy_sparse_matrix_new();
23: anthy_sparse_matrix_make_matrix(m);
24: mi = anthy_matrix_image_new(m);
25: change_endian(mi);
26: im = mi->image;
27: e = anthy_matrix_image_peek(im, 0, 0);
28: printf("zero matrix: size=%d (0,0)=%d\n", mi->size, e);
29: }
30:
31: static void
32: dense_matrix(void)
33: {
34: int i, j, fail;
35: struct sparse_matrix *m;
36: struct matrix_image *mi;
37: int *im, e;
38: m = anthy_sparse_matrix_new();
39: for (i = 0; i < 100; i++) {
40: for (j = 0; j < 100; j++) {
41: anthy_sparse_matrix_set(m, i, j, i + j, NULL);
42: }
43: }
44: anthy_sparse_matrix_make_matrix(m);
45: mi = anthy_matrix_image_new(m);
46: change_endian(mi);
47: im = mi->image;
48: fail = 0;
49: for (i = 0; i < 100; i++) {
50: for (j = 0; j < 100; j++) {
51: e = anthy_matrix_image_peek(im, i, j);
52: if (e != i+j) {
53: printf("image(%d,%d) == %d != %d\n", i,j,e,i+j);
54: fail ++;
55: }
56: e = anthy_sparse_matrix_get_int(m, i, j);
57: if (e != i+j) {
58: printf("origin(%d,%d) == %d != %d\n", i,j,e,i+j);
59: fail ++;
60: }
61: }
62: }
63: printf("%d errors in desnse matrix\n", fail);
64: }
65:
66: int
67: main(int argc, char **argv)
68: {
69: (void)argc;
70: (void)argv;
71: zero_matrix();
72: dense_matrix();
73: return 0;
74: }