home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume20 / xxalloc / nxtest.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-10-16  |  3.2 KB  |  112 lines

  1. /*xxtest.c***************************************************************/     
  2. /*                                    */
  3. /*                xxalloc                 */
  4. /*                                    */
  5. /*            Placed in the public domain            */
  6. /*             by Harold G. Walters 1988            */
  7. /*                                    */
  8. /*    Bug fixes, ect to walters@ce.okstate.edu until May 1989        */
  9. /*                                    */
  10. /*    This software is provided as is.  No claims are made for    */
  11. /*    this software regarding its fitness and/or correctness for    */
  12. /*     any purpose.  Use of this software is at the user's own risk.    */
  13. /*                                    */
  14. /************************************************************************/
  15.  
  16. #include <stdio.h>
  17. #include "xxalloc.h"
  18.  
  19. #define STRLEN 132
  20. static char msg[STRLEN];
  21.  
  22. /* 3*(NE+NO) <= 126 for char */
  23.  
  24. /* begin */
  25. #define NB -2
  26. /* end */
  27. #define NE 2
  28. /* offset */
  29. #define NO 9
  30.  
  31. typedef struct
  32. {
  33.     int l;
  34.     char junk;
  35. } STU;
  36.  
  37. main()
  38. {
  39.     int i, j, k;    
  40.     if (3*(NE+NO) > 126)
  41.     {
  42.         sprintf(msg, "3*(NE+NO) == %d but must be <= 126", 3*(NE+NO));
  43.         xx_error(msg);
  44.     }
  45.     {
  46.         STU *n1, **n2, ***n3;
  47.  
  48.         printf("checking STU 1 \n");
  49.         if (xx_amount() != 0L)
  50.             printf("STU: amount == %ld", xx_amount());
  51.         n1 = (STU *) n1_alloc(NB, NE, sizeof(STU));
  52.          for (i = NB; i <= NE; i++)
  53.              n1[i].l = i;
  54.          for (i = NB; i <= NE; i++)
  55.              if (n1[i].l != i)
  56.             printf("STU: after allocate n1[%d].l = %d != %d\n",
  57.                 i, n1[i].l, i);
  58.         n1 = (STU *) n1_renum(n1, NB, NE, NB+NO, NE+NO, sizeof(STU));
  59.          for (i = NB+NO; i <= NE+NO; i++)
  60.             if (n1[i].l != i-NO)
  61.             printf("STU: after renum n1[%d].l = %d != %d\n",
  62.                 i, n1[i].l, i-NO);
  63.         n1_free(n1, NB+NO, NE+NO, sizeof(STU));
  64.         
  65.  
  66.         printf("checking STU 2 \n");
  67.         if (xx_amount() != 0L)
  68.             printf("STU: amount == %ld", xx_amount());
  69.         n2 = (STU **) n2_alloc(NB, NE, NB, NE, sizeof(STU));
  70.          for (i = NB; i <= NE; i++)
  71.              for (j = NB; j <= NE; j++)
  72.                  n2[i][j].l = i + j;
  73.          for (i = NB; i <= NE; i++)
  74.              for (j = NB; j <= NE; j++)
  75.                  if (n2[i][j].l != i+j)
  76.             printf("STU: after allocate n2[%d][%d].l = %d != %d\n",
  77.                     i, j, n2[i][j].l, i+j);
  78.         n2 = (STU **) n2_renum(n2, NB, NE, NB, NE,
  79.             NB+NO, NE+NO, NB+NO, NE+NO, sizeof(STU));
  80.          for (i = NB+NO; i <= NE+NO; i++)
  81.              for (j = NB+NO; j <= NE+NO; j++)
  82.                  if (n2[i][j].l != i+j-NO-NO)
  83.             printf("STU: after renum n2[%d][%d].l = %d != %d\n",
  84.                     i, j, n2[i][j].l, i+j-NO-NO);
  85.         n2_free(n2, NB+NO, NE+NO, NB+NO, NE+NO, sizeof(STU));
  86.  
  87.         printf("checking STU 3 \n");
  88.         if (xx_amount() != 0L)
  89.             printf("STU: amount == %ld", xx_amount());
  90.         n3 = (STU ***) n3_alloc(NB, NE, NB, NE, NB, NE, sizeof(STU));
  91.          for (i = NB; i <= NE; i++)
  92.              for (j = NB; j <= NE; j++)
  93.                  for (k = NB; k <= NE; k++)
  94.                      n3[i][j][k].l = i + j + k;
  95.          for (i = NB; i <= NE; i++)
  96.              for (j = NB; j <= NE; j++)
  97.                  for (k = NB; k <= NE; k++)
  98.                      if (n3[i][j][k].l != i+j+k)
  99.         printf("STU: after allocate n3[%d][%d][%d].l = %d != %d\n",
  100.                         i, j, k, n3[i][j][k].l, i+j+k);
  101.         n3 = (STU ***) n3_renum(n3, NB, NE, NB, NE, NB, NE, 
  102.             NB+NO, NE+NO, NB+NO, NE+NO, NB+NO, NE+NO, sizeof(STU));
  103.          for (i = NB+NO; i <= NE+NO; i++)
  104.              for (j = NB+NO; j <= NE+NO; j++)
  105.                  for (k = NB+NO; k <= NE+NO; k++)
  106.                      if (n3[i][j][k].l != i+j+k-3*NO)
  107.         printf("STU: after renum n3[%d][%d][%d].l = %d != %d\n",
  108.                     i, j, k, n3[i][j][k].l, i+j+k-3*NO);
  109.         n3_free(n3, NB+NO, NE+NO, NB+NO, NE+NO, NB+NO, NE+NO,
  110.             sizeof(STU));
  111.     }
  112.