#include <stdio.h>
#include <arpa/inet.h> 

uint16_t LFSR_11_A_bits(int load_seed, uint16_t seed);

main()
   {
   int i;
   uint16_t seed, lfsr_val; 
   FILE *OUTFILE;

   seed = 0;

   OUTFILE = fopen("out.dat", "w");

   for ( i = 0; i < 10; i++ )
      {
      if ( i == 0 )
         lfsr_val = LFSR_11_A_bits(1, (uint16_t)seed);
      else
         lfsr_val = LFSR_11_A_bits(0, (uint16_t)0);

      fprintf(OUTFILE, "%i %d\n", i, lfsr_val);
#ifdef DEBUG
#endif
      }
   fclose(OUTFILE); 

   printf ("Comparing against output data \n");
   if ( system("diff -w out.dat out.gold.dat") )
      {
      fprintf(stdout, "*******************************************\n");
      fprintf(stdout, "FAIL: Output DOES NOT match the golden output\n");
      fprintf(stdout, "*******************************************\n");
      return 1;
      } 
   else 
      {
      fprintf(stdout, "*******************************************\n");
      fprintf(stdout, "PASS: The output matches the golden output!\n");
      fprintf(stdout, "*******************************************\n");
      return 0;
      }

   return 0;
   }
