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));
- }
- {
- char *c1, **c2, ***c3;
-
- printf("checking char 1 \n");
- if (xx_amount() != 0L)
- printf("char: amount == %ld", xx_amount());
- c1 = c1_alloc(NB, NE);
- for (i = NB; i <= NE; i++)
- c1[i] = (char) i;
- for (i = NB; i <= NE; i++)
- if (c1[i] != (char) i)
- printf("char: after allocate c1[%d] = %d != %d\n",
- i, c1[i], i);
- c1 = c1_renum(c1, NB, NE, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- if (c1[i] != (char) (i - NO))
- printf("char: after renum c1[%d] = %d != %d\n",
- i, c1[i], i - NO);
- c1_free(c1, NB + NO, NE + NO);
-
-
- printf("checking char 2 \n");
- if (xx_amount() != 0L)
- printf("char: amount == %ld", xx_amount());
- c2 = c2_alloc(NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- c2[i][j] = (char) (i + j);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- if (c2[i][j] != (char) (i + j))
- printf("char: after allocate c2[%d][%d] = %d != %d\n",
- i, j, c2[i][j], i + j);
- c2 = c2_renum(c2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- for (j = NB + NO; j <= NE + NO; j++)
- if (c2[i][j] != (char) (i + j - NO - NO))
- printf("char: after allocate c2[%d][%d] = %d != %d\n",
- i, j, c2[i][j], i + j - NO - NO);
- c2_free(c2, NB + NO, NE + NO, NB + NO, NE + NO);
-
- printf("checking char 3 \n");
- if (xx_amount() != 0L)
- printf("char: amount == %ld", xx_amount());
- c3 = c3_alloc(NB, NE, NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- c3[i][j][k] = (char) (i + j + k);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- if (c3[i][j][k] != (char) (i + j + k))
- printf("char: after allocate c3[%d][%d][%d] = %d != %d\n",
- i, j, k, c3[i][j][k], i + j + k);
- c3 = c3_renum(c3, NB, NE, NB, NE, NB, NE,
- NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- 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 (c3[i][j][k] != (char) (i + j + k - 3 * NO))
- printf("char: after allocate c3[%d][%d][%d] = %d != %d\n",
- i, j, k, c3[i][j][k], i + j + k - 3 * NO);
- c3_free(c3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- }
-
- {
- short *s1, **s2, ***s3;
-
- printf("checking short 1 \n");
- if (xx_amount() != 0L)
- printf("short: amount == %ld", xx_amount());
- s1 = s1_alloc(NB, NE);
- for (i = NB; i <= NE; i++)
- s1[i] = (short) i;
- for (i = NB; i <= NE; i++)
- if (s1[i] != (short) i)
- printf("short: after allocate s1[%d] = %d != %d\n",
- i, s1[i], i);
- s1 = s1_renum(s1, NB, NE, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- if (s1[i] != (short) (i - NO))
- printf("short: after renum s1[%d] = %d != %d\n",
- i, s1[i], i - NO);
- s1_free(s1, NB + NO, NE + NO);
-
-
- printf("checking short 2 \n");
- if (xx_amount() != 0L)
- printf("short: amount == %ld", xx_amount());
- s2 = s2_alloc(NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- s2[i][j] = (short) (i + j);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- if (s2[i][j] != (short) (i + j))
- printf("short: after allocate s2[%d][%d] = %d != %d\n",
- i, j, s2[i][j], i + j);
- s2 = s2_renum(s2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- for (j = NB + NO; j <= NE + NO; j++)
- if (s2[i][j] != (short) (i + j - NO - NO))
- printf("short: after allocate s2[%d][%d] = %d != %d\n",
- i, j, s2[i][j], i + j - NO - NO);
- s2_free(s2, NB + NO, NE + NO, NB + NO, NE + NO);
-
- printf("checking short 3 \n");
- if (xx_amount() != 0L)
- printf("short: amount == %ld", xx_amount());
- s3 = s3_alloc(NB, NE, NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- s3[i][j][k] = (short) (i + j + k);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- if (s3[i][j][k] != (short) (i + j + k))
- printf("short: after allocate s3[%d][%d][%d] = %d != %d\n",
- i, j, k, s3[i][j][k], i + j + k);
- s3 = s3_renum(s3, NB, NE, NB, NE, NB, NE,
- NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- 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 (s3[i][j][k] != (short) (i + j + k - 3 * NO))
- printf("short: after allocate s3[%d][%d][%d] = %d != %d\n",
- i, j, k, s3[i][j][k], i + j + k - 3 * NO);
- s3_free(s3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- }
-
- {
- long *l1, **l2, ***l3;
-
- printf("checking long 1 \n");
- if (xx_amount() != 0L)
- printf("long: amount == %ld", xx_amount());
- l1 = l1_alloc(NB, NE);
- for (i = NB; i <= NE; i++)
- l1[i] = (long) i;
- for (i = NB; i <= NE; i++)
- if (l1[i] != (long) i)
- printf("long: after allocate l1[%d] = %ld != %d\n",
- i, l1[i], i);
- l1 = l1_renum(l1, NB, NE, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- if (l1[i] != (long) (i - NO))
- printf("long: after renum l1[%d] = %ld != %d\n",
- i, l1[i], i - NO);
- l1_free(l1, NB + NO, NE + NO);
-
-
- printf("checking long 2 \n");
- if (xx_amount() != 0L)
- printf("long: amount == %ld", xx_amount());
- l2 = l2_alloc(NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- l2[i][j] = (long) (i + j);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- if (l2[i][j] != (long) (i + j))
- printf("long: after allocate l2[%d][%d] = %ld != %d\n",
- i, j, l2[i][j], i + j);
- l2 = l2_renum(l2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- for (j = NB + NO; j <= NE + NO; j++)
- if (l2[i][j] != (long) (i + j - NO - NO))
- printf("long: after allocate l2[%d][%d] = %ld != %d\n",
- i, j, l2[i][j], i + j - NO - NO);
- l2_free(l2, NB + NO, NE + NO, NB + NO, NE + NO);
-
- printf("checking long 3 \n");
- if (xx_amount() != 0L)
- printf("long: amount == %ld", xx_amount());
- l3 = l3_alloc(NB, NE, NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- l3[i][j][k] = (long) (i + j + k);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- if (l3[i][j][k] != (long) (i + j + k))
- printf("long: after allocate l3[%d][%d][%d] = %ld != %d\n",
- i, j, k, l3[i][j][k], i + j + k);
- l3 = l3_renum(l3, NB, NE, NB, NE, NB, NE,
- NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- 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 (l3[i][j][k] != (long) (i + j + k - 3 * NO))
- printf("long: after allocate l3[%d][%d][%d] = %ld != %d\n",
- i, j, k, l3[i][j][k], i + j + k - 3 * NO);
- l3_free(l3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- }
-
- {
- int *i1, **i2, ***i3;
-
- printf("checking int 1 \n");
- if (xx_amount() != 0L)
- printf("int: amount == %ld", xx_amount());
- i1 = i1_alloc(NB, NE);
- for (i = NB; i <= NE; i++)
- i1[i] = (int) i;
- for (i = NB; i <= NE; i++)
- if (i1[i] != (int) i)
- printf("int: after allocate i1[%d] = %d != %d\n",
- i, i1[i], i);
- i1 = i1_renum(i1, NB, NE, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- if (i1[i] != (int) (i - NO))
- printf("int: after renum i1[%d] = %d != %d\n",
- i, i1[i], i - NO);
- i1_free(i1, NB + NO, NE + NO);
-
-
- printf("checking int 2 \n");
- if (xx_amount() != 0L)
- printf("int: amount == %ld", xx_amount());
- i2 = i2_alloc(NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- i2[i][j] = (int) (i + j);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- if (i2[i][j] != (int) (i + j))
- printf("int: after allocate i2[%d][%d] = %d != %d\n",
- i, j, i2[i][j], i + j);
- i2 = i2_renum(i2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- for (j = NB + NO; j <= NE + NO; j++)
- if (i2[i][j] != (int) (i + j - NO - NO))
- printf("int: after allocate i2[%d][%d] = %d != %d\n",
- i, j, i2[i][j], i + j - NO - NO);
- i2_free(i2, NB + NO, NE + NO, NB + NO, NE + NO);
-
- printf("checking int 3 \n");
- if (xx_amount() != 0L)
- printf("int: amount == %ld", xx_amount());
- i3 = i3_alloc(NB, NE, NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- i3[i][j][k] = (int) (i + j + k);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- if (i3[i][j][k] != (int) (i + j + k))
- printf("int: after allocate i3[%d][%d][%d] = %d != %d\n",
- i, j, k, i3[i][j][k], i + j + k);
- i3 = i3_renum(i3, NB, NE, NB, NE, NB, NE,
- NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- 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 (i3[i][j][k] != (int) (i + j + k - 3 * NO))
- printf("int: after allocate i3[%d][%d][%d] = %d != %d\n",
- i, j, k, i3[i][j][k], i + j + k - 3 * NO);
- i3_free(i3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- }
-
- {
- float *f1, **f2, ***f3;
-
- printf("checking float 1 \n");
- if (xx_amount() != 0L)
- printf("float: amount == %ld", xx_amount());
- f1 = f1_alloc(NB, NE);
- for (i = NB; i <= NE; i++)
- f1[i] = (float) i;
- for (i = NB; i <= NE; i++)
- if (f1[i] != (float) i)
- printf("float: after allocate f1[%d] = %f != %d\n",
- i, f1[i], i);
- f1 = f1_renum(f1, NB, NE, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- if (f1[i] != (float) (i - NO))
- printf("float: after renum f1[%d] = %f != %d\n",
- i, f1[i], i - NO);
- f1_free(f1, NB + NO, NE + NO);
-
-
- printf("checking float 2 \n");
- if (xx_amount() != 0L)
- printf("float: amount == %ld", xx_amount());
- f2 = f2_alloc(NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- f2[i][j] = (float) (i + j);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- if (f2[i][j] != (float) (i + j))
- printf("float: after allocate f2[%d][%d] = %f != %d\n",
- i, j, f2[i][j], i + j);
- f2 = f2_renum(f2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- for (j = NB + NO; j <= NE + NO; j++)
- if (f2[i][j] != (float) (i + j - NO - NO))
- printf("float: after allocate f2[%d][%d] = %f != %d\n",
- i, j, f2[i][j], i + j - NO - NO);
- f2_free(f2, NB + NO, NE + NO, NB + NO, NE + NO);
-
- printf("checking float 3 \n");
- if (xx_amount() != 0L)
- printf("float: amount == %ld", xx_amount());
- f3 = f3_alloc(NB, NE, NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- f3[i][j][k] = (float) (i + j + k);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- if (f3[i][j][k] != (float) (i + j + k))
- printf("float: after allocate f3[%d][%d][%d] = %f != %d\n",
- i, j, k, f3[i][j][k], i + j + k);
- f3 = f3_renum(f3, NB, NE, NB, NE, NB, NE,
- NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- 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 (f3[i][j][k] != (float) (i + j + k - 3 * NO))
- printf("float: after allocate f3[%d][%d][%d] = %f != %d\n",
- i, j, k, f3[i][j][k], i + j + k - 3 * NO);
- f3_free(f3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- }
-
- {
- double *d1, **d2, ***d3;
-
- printf("checking double 1 \n");
- if (xx_amount() != 0L)
- printf("double: amount == %ld", xx_amount());
- d1 = d1_alloc(NB, NE);
- for (i = NB; i <= NE; i++)
- d1[i] = (double) i;
- for (i = NB; i <= NE; i++)
- if (d1[i] != (double) i)
- printf("double: after allocate d1[%d] = %lf != %d\n",
- i, d1[i], i);
- d1 = d1_renum(d1, NB, NE, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- if (d1[i] != (double) (i - NO))
- printf("double: after renum d1[%d] = %lf != %d\n",
- i, d1[i], i - NO);
- d1_free(d1, NB + NO, NE + NO);
-
-
- printf("checking double 2 \n");
- if (xx_amount() != 0L)
- printf("double: amount == %ld", xx_amount());
- d2 = d2_alloc(NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- d2[i][j] = (double) (i + j);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- if (d2[i][j] != (double) (i + j))
- printf("double: after allocate d2[%d][%d] = %lf != %d\n",
- i, j, d2[i][j], i + j);
- d2 = d2_renum(d2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
- for (i = NB + NO; i <= NE + NO; i++)
- for (j = NB + NO; j <= NE + NO; j++)
- if (d2[i][j] != (double) (i + j - NO - NO))
- printf("double: after allocate d2[%d][%d] = %lf != %d\n",
- i, j, d2[i][j], i + j - NO - NO);
- d2_free(d2, NB + NO, NE + NO, NB + NO, NE + NO);
-
- printf("checking double 3 \n");
- if (xx_amount() != 0L)
- printf("double: amount == %ld", xx_amount());
- d3 = d3_alloc(NB, NE, NB, NE, NB, NE);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- d3[i][j][k] = (double) (i + j + k);
- for (i = NB; i <= NE; i++)
- for (j = NB; j <= NE; j++)
- for (k = NB; k <= NE; k++)
- if (d3[i][j][k] != (double) (i + j + k))
- printf("double: after allocate d3[%d][%d][%d] = %lf != %d\n",
- i, j, k, d3[i][j][k], i + j + k);
- d3 = d3_renum(d3, NB, NE, NB, NE, NB, NE,
- NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- 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 (d3[i][j][k] != (double) (i + j + k - 3 * NO))
- printf("double: after allocate d3[%d][%d][%d] = %lf != %d\n",
- i, j, k, d3[i][j][k], i + j + k - 3 * NO);
- d3_free(d3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
- }
-
- exit(0);
- }
-