(linenum→info "unix/slp.c:2238")

anthy/9100e/test/test-matrix.c

    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: }
Syntax (Markdown)