void put_entier_tst() { int i, j ; struct bitstream *bs ; bs = open_bitstream("xxx", "w") ; for(i=0; i<TAILLE(t); i++) put_entier(bs, t[i].entier) ; close_bitstream(bs) ; bs = open_bitstream("xxx", "r") ; for(i=0; i<TAILLE(t); i++) { for(j=0; t[i].chaine[j]; j++) if ( get_bit(bs) != t[i].chaine[j] - '0' ) { eprintf("Ecriture de l'entier %d (%s en binaire)\n", t[i].entier, t[i].chaine) ; eprintf("Mauvaise écriture du bit numero %d (a partir de 0)\n", j) ; return ; } } close_bitstream(bs) ; }
void put_entier_signe_tst() { int i ; struct bitstream *bs ; bs = open_bitstream("xxx", "w") ; for(i=0; i<TAILLE(t); i++) { put_entier_signe(bs, t[i].entier) ; put_entier_signe(bs, -t[i].entier) ; } close_bitstream(bs) ; bs = open_bitstream("xxx", "r") ; for(i=0; i<TAILLE(t); i++) { if ( get_bit(bs) ) { eprintf("Mauvais bit de signe en écriture (positif) pour %d\n", i) ; return ; } if ( get_entier(bs) != t[i].entier) { eprintf("Mauvaise écriture de l'entier %d\n", i) ; return ; } if ( i != 0 ) { if ( !get_bit(bs) ) { eprintf("Mauvais bit de signe en écriture (negatif) %d\n", i) ; return ; } if ( get_entier(bs) != t[i].entier-1 ) { eprintf("Mauvaise écriture de l'entier %d\n", -i) ; return ; } } else { if ( get_bit(bs) ) { eprintf("Mauvais bit de signe pour 0\n") ; return ; } if ( get_entier(bs) != 0 ) { eprintf("Mauvaise valeur pour 0\n") ; return ; } } } close_bitstream(bs) ; }
void ondelette_1d_tst() { int i, j ; float res[NBM] ; for(i=0; i<TAILLE(t1); i++) { ondelette_1d(t1[i].in, res, t1[i].nb) ; if ( memcmp(res, t1[i].out, t1[i].nb * sizeof(t1[i].out[0])) != 0 ) { eprintf("ondelette de :") ; for(j=0; j<t1[i].nb; j++) eprintf(" %g", t1[i].in[j]) ; eprintf("\ndonne :") ; for(j=0; j<t1[i].nb; j++) eprintf(" %g", res[j]) ; eprintf("\nau lieu de :") ; for(j=0; j<t1[i].nb; j++) eprintf(" %g", t1[i].out[j]) ; eprintf("\n") ; return ; } } }
void lire_binaire(T_Tab_CPS * cps) { int i = 0; FILE *f; FILE *f2; if ((f = fopen("cps.bin", "rb")) == NULL) exit(EXIT_FAILURE); fread(cps->tab, sizeof(cps->tab), 1, f); if ((f2 = fopen("themes.bin", "rb")) == NULL) exit(EXIT_FAILURE); fread(themes.tab, sizeof(themes.tab), 1, f2); printf(" %-80s %-8s%-8s%-32s %5s\n%s%s\n", "titre", "num", "annee", "theme", "sous-theme", "-------------------------------------------------------------------------------------------", "----------------------------------------------------------------------------------"); for (i = 0; i < TAILLE(cps->tab); i++) printf("%03d : %-80s %-8d%-8d%-32s %5s\n", i, cps->tab[i].titre, cps->tab[i].num, cps->tab[i].ann, themes.tab[cps->tab[i].th].nom, themes.tab[cps->tab[i].th].tabSD[cps->tab[i].sd]); fclose(f); fclose(f2); }
void get_entier_tst() { int i, j ; struct bitstream *bs ; put_entier_tst() ; bs = open_bitstream("xxx", "r") ; for(i=0; i<TAILLE(t); i++) { j = get_entier(bs) ; if ( j != t[i].entier ) { eprintf("Lecture de l'entier %d (%s en binaire)\n", t[i].entier, t[i].chaine) ; eprintf("Je recois %d\n", j) ; return ; } } close_bitstream(bs) ; }
void get_entier_signe_tst() { int i ; struct bitstream *bs ; put_entier_signe_tst() ; bs = open_bitstream("xxx", "r") ; for(i=0; i<TAILLE(t); i++) { if ( get_entier_signe(bs) != t[i].entier ) { eprintf("Mauvaise lecture de l'entier signe %d\n", i) ; return ; } if ( get_entier_signe(bs) != -t[i].entier ) { eprintf("Mauvaise lecture de l'entier signe %d\n", -i) ; return ; } } close_bitstream(bs) ; }
void ondelette_2d_inverse_tst() { int i, y, x ; float **tf, tmp ; int transposee ; transposee = 0 ; for(i=0; i<TAILLE(t2); i++) { tf = allocation_matrice_float(t2[i].hau, t2[i].lar) ; for(y=0; y<t2[i].hau; y++) for(x=0; x<t2[i].lar; x++) tf[y][x] = t2[i].out[y][x] ; ondelette_2d_inverse(tf, t2[i].hau, t2[i].lar) ; for(y=0; y<t2[i].hau; y++) for(x=0; x<t2[i].lar; x++) if ( tf[y][x] != t2[i].in[y][x] ) { eprintf("Difference (%d,%d) = %g :\n",y,x,tf[y][x] - t2[i].in[y][x] ) ; eprintf("ondelette de :\n") ; for(y=0; y<t2[i].hau; y++) { for(x=0; x<t2[i].lar; x++) eprintf(" %10f", t2[i].out[y][x]) ; eprintf("\n") ; } eprintf("\ndonne :\n") ; for(y=0; y<t2[i].hau; y++) { for(x=0; x<t2[i].lar; x++) eprintf(" %10f", tf[y][x]) ; eprintf("\n") ; } eprintf("\nau lieu de :\n") ; for(y=0; y<t2[i].hau; y++) { for(x=0; x<t2[i].lar; x++) eprintf(" %10f", t2[i].in[y][x]) ; eprintf("\n") ; } return ; } liberation_matrice_float(tf, t2[i].hau) ; /* Transpose */ for(y=0; y<NBM; y++) for(x=0; x<y; x++) { tmp = t2[i].in[x][y] ; t2[i].in[x][y] = t2[i].in[y][x] ; t2[i].in[y][x] = tmp ; tmp = t2[i].out[x][y] ; t2[i].out[x][y] = t2[i].out[y][x] ; t2[i].out[y][x] = tmp ; } tmp = t2[i].lar ; t2[i].lar = t2[i].hau ; t2[i].hau = tmp ; transposee ^= 1 ; if ( transposee == 1 ) { i-- ; /* reste sur le meme */ } } }