home *** CD-ROM | disk | FTP | other *** search
- /*xxtest.c***************************************************************/
- /* */
- /* xxalloc */
- /* */
- /* Placed in the public domain */
- /* by Harold G. Walters 1988 */
- /* */
- /* Bug fixes, ect to walters@ce.okstate.edu until May 1989 */
- /* */
- /* This software is provided as is. No claims are made for */
- /* this software regarding its fitness and/or correctness for */
- /* any purpose. Use of this software is at the user's own risk. */
- /* */
- /************************************************************************/
-
- #include <stdio.h>
- #include "xxalloc.h"
-
- #define STRLEN 132
- static char msg[STRLEN];
-
- /* 3*(NE+NO) <= 126 for char */
-
- /* begin */
- #define NB -2
- /* end */
- #define NE 2
- /* offset */
- #define NO 9
-
- typedef struct
- {
- int l;
- char junk;
- } STU;
-
- main()
- {
- int i, j, k;
- if (3*(NE+NO) > 126)
- {
- sprintf(msg, "3*(NE+NO) == %d but must be <= 126", 3*(NE+NO));
- xx_error(msg);
- }
- {
- STU *n1, **n2, ***n3;
-
- printf("checking STU 1 \n");
- if (xx_amount() != 0L)
- printf("STU: amount == %ld", xx_amount());
- n1 = (STU *) n1_alloc(NB, NE, sizeof(STU));
- for (i = NB; i <= NE; i++)
- n1[i].l = i;
- for (i = NB; i <= NE; i++)
- if (n1[i].l != i)
- printf("STU: after allocate n1[%d].l = %d != %d\n",
- i, n1[i].l, i);
- n1 = (STU *) n1_renum(n1, NB, NE, NB+NO, NE+NO, sizeof(STU));
- for (i = NB+NO; i <= NE+NO; i++)
- if (n1[i].l != i-NO)
- printf("STU: after renum n1[%d].l = %d != %d\n",
- i, n1[i].l, i-NO);
- n1_free(n1, NB+NO, NE+NO, sizeof(STU));
-
-
- printf("checking STU 2 \n");
- if (xx_amount() != 0L)
- printf("STU: amount == %ld", xx_amount());
- n2 = (STU **) n2_alloc(NB, NE, NB, NE, sizeof(STU));
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- n2[i][j].l = i + j;
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- if (n2[i][j].l != i+j)
- printf("STU: after allocate n2[%d][%d].l = %d != %d\n",
- i, j, n2[i][j].l, i+j);
- n2 = (STU **) n2_renum(n2, NB, NE, NB, NE,
- NB+NO, NE+NO, NB+NO, NE+NO, sizeof(STU));
- for (i = NB+NO; i <= NE+NO; i++)
- for (j = NB+NO; j <= NE+NO; j++)
- if (n2[i][j].l != i+j-NO-NO)
- printf("STU: after renum n2[%d][%d].l = %d != %d\n",
- i, j, n2[i][j].l, i+j-NO-NO);
- n2_free(n2, NB+NO, NE+NO, NB+NO, NE+NO, sizeof(STU));
-
- printf("checking STU 3 \n");
- if (xx_amount() != 0L)
- printf("STU: amount == %ld", xx_amount());
- n3 = (STU ***) n3_alloc(NB, NE, NB, NE, NB, NE, sizeof(STU));
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- n3[i][j][k].l = i + j + k;
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- if (n3[i][j][k].l != i+j+k)
- printf("STU: after allocate n3[%d][%d][%d].l = %d != %d\n",
- i, j, k, n3[i][j][k].l, i+j+k);
- n3 = (STU ***) n3_renum(n3, NB, NE, NB, NE, NB, NE,
- NB+NO, NE+NO, NB+NO, NE+NO, NB+NO, NE+NO, sizeof(STU));
- for (i = NB+NO; i <= NE+NO; i++)
- for (j = NB+NO; j <= NE+NO; j++)
- for (k = NB+NO; k <= NE+NO; k++)
- if (n3[i][j][k].l != i+j+k-3*NO)
- printf("STU: after renum n3[%d][%d][%d].l = %d != %d\n",
- i, j, k, n3[i][j][k].l, i+j+k-3*NO);
- n3_free(n3, NB+NO, NE+NO, NB+NO, NE+NO, NB+NO, NE+NO,
- sizeof(STU));
- }
-