コード例 #1
0
ファイル: entier_tst.c プロジェクト: Apolerag/TP_DCT
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) ;
}
コード例 #2
0
ファイル: entier_tst.c プロジェクト: Apolerag/TP_DCT
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) ;
}
コード例 #3
0
ファイル: ondelette_tst.c プロジェクト: Apolerag/TP_DCT
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 ;
	}
    }
}
コード例 #4
0
ファイル: fichiers.c プロジェクト: nbyouri/c
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);
}
コード例 #5
0
ファイル: entier_tst.c プロジェクト: Apolerag/TP_DCT
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) ;
}
コード例 #6
0
ファイル: entier_tst.c プロジェクト: Apolerag/TP_DCT
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) ;
}
コード例 #7
0
ファイル: ondelette_tst.c プロジェクト: Apolerag/TP_DCT
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 */
	}


    }

}