home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 14 / CDACTUAL.iso / cdactual / demobin / share / program / c / XXALLOC.ZIP / XXTEST.C < prev   
Encoding:
C/C++ Source or Header  |  1989-12-26  |  17.7 KB  |  507 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.     int             l;
  33.     char            junk;
  34. }               STU;
  35.  
  36. main()
  37. {
  38.     int             i, j, k;
  39.     if (3 * (NE + NO) > 126) {
  40.         sprintf(msg, "3*(NE+NO) == %d but must be <= 126", 3 * (NE + NO));
  41.         xx_error(msg);
  42.     } {
  43.         STU            *n1, **n2, ***n3;
  44.  
  45.         printf("checking STU 1 \n");
  46.         if (xx_amount() != 0L)
  47.             printf("STU: amount == %ld", xx_amount());
  48.         n1 = (STU *) n1_alloc(NB, NE, sizeof(STU));
  49.         for (i = NB; i <= NE; i++)
  50.             n1[i].l = i;
  51.         for (i = NB; i <= NE; i++)
  52.             if (n1[i].l != i)
  53.                 printf("STU: after allocate n1[%d].l = %d != %d\n",
  54.                        i, n1[i].l, i);
  55.         n1 = (STU *) n1_renum(n1, NB, NE, NB + NO, NE + NO, sizeof(STU));
  56.         for (i = NB + NO; i <= NE + NO; i++)
  57.             if (n1[i].l != i - NO)
  58.                 printf("STU: after renum n1[%d].l = %d != %d\n",
  59.                        i, n1[i].l, i - NO);
  60.         n1_free(n1, NB + NO, NE + NO, sizeof(STU));
  61.  
  62.  
  63.         printf("checking STU 2 \n");
  64.         if (xx_amount() != 0L)
  65.             printf("STU: amount == %ld", xx_amount());
  66.         n2 = (STU **) n2_alloc(NB, NE, NB, NE, sizeof(STU));
  67.         for (i = NB; i <= NE; i++)
  68.             for (j = NB; j <= NE; j++)
  69.                 n2[i][j].l = i + j;
  70.         for (i = NB; i <= NE; i++)
  71.             for (j = NB; j <= NE; j++)
  72.                 if (n2[i][j].l != i + j)
  73.                     printf("STU: after allocate n2[%d][%d].l = %d != %d\n",
  74.                            i, j, n2[i][j].l, i + j);
  75.         n2 = (STU **) n2_renum(n2, NB, NE, NB, NE,
  76.                NB + NO, NE + NO, NB + NO, NE + NO, sizeof(STU));
  77.         for (i = NB + NO; i <= NE + NO; i++)
  78.             for (j = NB + NO; j <= NE + NO; j++)
  79.                 if (n2[i][j].l != i + j - NO - NO)
  80.                     printf("STU: after renum n2[%d][%d].l = %d != %d\n",
  81.                      i, j, n2[i][j].l, i + j - NO - NO);
  82.         n2_free(n2, NB + NO, NE + NO, NB + NO, NE + NO, sizeof(STU));
  83.  
  84.         printf("checking STU 3 \n");
  85.         if (xx_amount() != 0L)
  86.             printf("STU: amount == %ld", xx_amount());
  87.         n3 = (STU ***) n3_alloc(NB, NE, NB, NE, NB, NE, sizeof(STU));
  88.         for (i = NB; i <= NE; i++)
  89.             for (j = NB; j <= NE; j++)
  90.                 for (k = NB; k <= NE; k++)
  91.                     n3[i][j][k].l = i + j + k;
  92.         for (i = NB; i <= NE; i++)
  93.             for (j = NB; j <= NE; j++)
  94.                 for (k = NB; k <= NE; k++)
  95.                     if (n3[i][j][k].l != i + j + k)
  96.                         printf("STU: after allocate n3[%d][%d][%d].l = %d != %d\n",
  97.                                i, j, k, n3[i][j][k].l, i + j + k);
  98.         n3 = (STU ***) n3_renum(n3, NB, NE, NB, NE, NB, NE,
  99.                     NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO, sizeof(STU));
  100.         for (i = NB + NO; i <= NE + NO; i++)
  101.             for (j = NB + NO; j <= NE + NO; j++)
  102.                 for (k = NB + NO; k <= NE + NO; k++)
  103.                     if (n3[i][j][k].l != i + j + k - 3 * NO)
  104.                         printf("STU: after renum n3[%d][%d][%d].l = %d != %d\n",
  105.                                i, j, k, n3[i][j][k].l, i + j + k - 3 * NO);
  106.         n3_free(n3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO,
  107.             sizeof(STU));
  108.     }
  109.     {
  110.         char           *c1, **c2, ***c3;
  111.  
  112.         printf("checking char 1 \n");
  113.         if (xx_amount() != 0L)
  114.             printf("char: amount == %ld", xx_amount());
  115.         c1 = c1_alloc(NB, NE);
  116.         for (i = NB; i <= NE; i++)
  117.             c1[i] = (char) i;
  118.         for (i = NB; i <= NE; i++)
  119.             if (c1[i] != (char) i)
  120.                 printf("char: after allocate c1[%d] = %d != %d\n",
  121.                        i, c1[i], i);
  122.         c1 = c1_renum(c1, NB, NE, NB + NO, NE + NO);
  123.         for (i = NB + NO; i <= NE + NO; i++)
  124.             if (c1[i] != (char) (i - NO))
  125.                 printf("char: after renum c1[%d] = %d != %d\n",
  126.                        i, c1[i], i - NO);
  127.         c1_free(c1, NB + NO, NE + NO);
  128.  
  129.  
  130.         printf("checking char 2 \n");
  131.         if (xx_amount() != 0L)
  132.             printf("char: amount == %ld", xx_amount());
  133.         c2 = c2_alloc(NB, NE, NB, NE);
  134.         for (i = NB; i <= NE; i++)
  135.             for (j = NB; j <= NE; j++)
  136.                 c2[i][j] = (char) (i + j);
  137.         for (i = NB; i <= NE; i++)
  138.             for (j = NB; j <= NE; j++)
  139.                 if (c2[i][j] != (char) (i + j))
  140.                     printf("char: after allocate c2[%d][%d] = %d != %d\n",
  141.                            i, j, c2[i][j], i + j);
  142.         c2 = c2_renum(c2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
  143.         for (i = NB + NO; i <= NE + NO; i++)
  144.             for (j = NB + NO; j <= NE + NO; j++)
  145.                 if (c2[i][j] != (char) (i + j - NO - NO))
  146.                     printf("char: after allocate c2[%d][%d] = %d != %d\n",
  147.                        i, j, c2[i][j], i + j - NO - NO);
  148.         c2_free(c2, NB + NO, NE + NO, NB + NO, NE + NO);
  149.  
  150.         printf("checking char 3 \n");
  151.         if (xx_amount() != 0L)
  152.             printf("char: amount == %ld", xx_amount());
  153.         c3 = c3_alloc(NB, NE, NB, NE, NB, NE);
  154.         for (i = NB; i <= NE; i++)
  155.             for (j = NB; j <= NE; j++)
  156.                 for (k = NB; k <= NE; k++)
  157.                     c3[i][j][k] = (char) (i + j + k);
  158.         for (i = NB; i <= NE; i++)
  159.             for (j = NB; j <= NE; j++)
  160.                 for (k = NB; k <= NE; k++)
  161.                     if (c3[i][j][k] != (char) (i + j + k))
  162.                         printf("char: after allocate c3[%d][%d][%d] = %d != %d\n",
  163.                                i, j, k, c3[i][j][k], i + j + k);
  164.         c3 = c3_renum(c3, NB, NE, NB, NE, NB, NE,
  165.               NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  166.         for (i = NB + NO; i <= NE + NO; i++)
  167.             for (j = NB + NO; j <= NE + NO; j++)
  168.                 for (k = NB + NO; k <= NE + NO; k++)
  169.                     if (c3[i][j][k] != (char) (i + j + k - 3 * NO))
  170.                         printf("char: after allocate c3[%d][%d][%d] = %d != %d\n",
  171.                                i, j, k, c3[i][j][k], i + j + k - 3 * NO);
  172.         c3_free(c3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  173.     }
  174.  
  175.     {
  176.         short          *s1, **s2, ***s3;
  177.  
  178.         printf("checking short 1 \n");
  179.         if (xx_amount() != 0L)
  180.             printf("short: amount == %ld", xx_amount());
  181.         s1 = s1_alloc(NB, NE);
  182.         for (i = NB; i <= NE; i++)
  183.             s1[i] = (short) i;
  184.         for (i = NB; i <= NE; i++)
  185.             if (s1[i] != (short) i)
  186.                 printf("short: after allocate s1[%d] = %d != %d\n",
  187.                        i, s1[i], i);
  188.         s1 = s1_renum(s1, NB, NE, NB + NO, NE + NO);
  189.         for (i = NB + NO; i <= NE + NO; i++)
  190.             if (s1[i] != (short) (i - NO))
  191.                 printf("short: after renum s1[%d] = %d != %d\n",
  192.                        i, s1[i], i - NO);
  193.         s1_free(s1, NB + NO, NE + NO);
  194.  
  195.  
  196.         printf("checking short 2 \n");
  197.         if (xx_amount() != 0L)
  198.             printf("short: amount == %ld", xx_amount());
  199.         s2 = s2_alloc(NB, NE, NB, NE);
  200.         for (i = NB; i <= NE; i++)
  201.             for (j = NB; j <= NE; j++)
  202.                 s2[i][j] = (short) (i + j);
  203.         for (i = NB; i <= NE; i++)
  204.             for (j = NB; j <= NE; j++)
  205.                 if (s2[i][j] != (short) (i + j))
  206.                     printf("short: after allocate s2[%d][%d] = %d != %d\n",
  207.                            i, j, s2[i][j], i + j);
  208.         s2 = s2_renum(s2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
  209.         for (i = NB + NO; i <= NE + NO; i++)
  210.             for (j = NB + NO; j <= NE + NO; j++)
  211.                 if (s2[i][j] != (short) (i + j - NO - NO))
  212.                     printf("short: after allocate s2[%d][%d] = %d != %d\n",
  213.                        i, j, s2[i][j], i + j - NO - NO);
  214.         s2_free(s2, NB + NO, NE + NO, NB + NO, NE + NO);
  215.  
  216.         printf("checking short 3 \n");
  217.         if (xx_amount() != 0L)
  218.             printf("short: amount == %ld", xx_amount());
  219.         s3 = s3_alloc(NB, NE, NB, NE, NB, NE);
  220.         for (i = NB; i <= NE; i++)
  221.             for (j = NB; j <= NE; j++)
  222.                 for (k = NB; k <= NE; k++)
  223.                     s3[i][j][k] = (short) (i + j + k);
  224.         for (i = NB; i <= NE; i++)
  225.             for (j = NB; j <= NE; j++)
  226.                 for (k = NB; k <= NE; k++)
  227.                     if (s3[i][j][k] != (short) (i + j + k))
  228.                         printf("short: after allocate s3[%d][%d][%d] = %d != %d\n",
  229.                                i, j, k, s3[i][j][k], i + j + k);
  230.         s3 = s3_renum(s3, NB, NE, NB, NE, NB, NE,
  231.               NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  232.         for (i = NB + NO; i <= NE + NO; i++)
  233.             for (j = NB + NO; j <= NE + NO; j++)
  234.                 for (k = NB + NO; k <= NE + NO; k++)
  235.                     if (s3[i][j][k] != (short) (i + j + k - 3 * NO))
  236.                         printf("short: after allocate s3[%d][%d][%d] = %d != %d\n",
  237.                                i, j, k, s3[i][j][k], i + j + k - 3 * NO);
  238.         s3_free(s3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  239.     }
  240.  
  241.     {
  242.         long           *l1, **l2, ***l3;
  243.  
  244.         printf("checking long 1 \n");
  245.         if (xx_amount() != 0L)
  246.             printf("long: amount == %ld", xx_amount());
  247.         l1 = l1_alloc(NB, NE);
  248.         for (i = NB; i <= NE; i++)
  249.             l1[i] = (long) i;
  250.         for (i = NB; i <= NE; i++)
  251.             if (l1[i] != (long) i)
  252.                 printf("long: after allocate l1[%d] = %ld != %d\n",
  253.                        i, l1[i], i);
  254.         l1 = l1_renum(l1, NB, NE, NB + NO, NE + NO);
  255.         for (i = NB + NO; i <= NE + NO; i++)
  256.             if (l1[i] != (long) (i - NO))
  257.                 printf("long: after renum l1[%d] = %ld != %d\n",
  258.                        i, l1[i], i - NO);
  259.         l1_free(l1, NB + NO, NE + NO);
  260.  
  261.  
  262.         printf("checking long 2 \n");
  263.         if (xx_amount() != 0L)
  264.             printf("long: amount == %ld", xx_amount());
  265.         l2 = l2_alloc(NB, NE, NB, NE);
  266.         for (i = NB; i <= NE; i++)
  267.             for (j = NB; j <= NE; j++)
  268.                 l2[i][j] = (long) (i + j);
  269.         for (i = NB; i <= NE; i++)
  270.             for (j = NB; j <= NE; j++)
  271.                 if (l2[i][j] != (long) (i + j))
  272.                     printf("long: after allocate l2[%d][%d] = %ld != %d\n",
  273.                            i, j, l2[i][j], i + j);
  274.         l2 = l2_renum(l2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
  275.         for (i = NB + NO; i <= NE + NO; i++)
  276.             for (j = NB + NO; j <= NE + NO; j++)
  277.                 if (l2[i][j] != (long) (i + j - NO - NO))
  278.                     printf("long: after allocate l2[%d][%d] = %ld != %d\n",
  279.                        i, j, l2[i][j], i + j - NO - NO);
  280.         l2_free(l2, NB + NO, NE + NO, NB + NO, NE + NO);
  281.  
  282.         printf("checking long 3 \n");
  283.         if (xx_amount() != 0L)
  284.             printf("long: amount == %ld", xx_amount());
  285.         l3 = l3_alloc(NB, NE, NB, NE, NB, NE);
  286.         for (i = NB; i <= NE; i++)
  287.             for (j = NB; j <= NE; j++)
  288.                 for (k = NB; k <= NE; k++)
  289.                     l3[i][j][k] = (long) (i + j + k);
  290.         for (i = NB; i <= NE; i++)
  291.             for (j = NB; j <= NE; j++)
  292.                 for (k = NB; k <= NE; k++)
  293.                     if (l3[i][j][k] != (long) (i + j + k))
  294.                         printf("long: after allocate l3[%d][%d][%d] = %ld != %d\n",
  295.                                i, j, k, l3[i][j][k], i + j + k);
  296.         l3 = l3_renum(l3, NB, NE, NB, NE, NB, NE,
  297.               NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  298.         for (i = NB + NO; i <= NE + NO; i++)
  299.             for (j = NB + NO; j <= NE + NO; j++)
  300.                 for (k = NB + NO; k <= NE + NO; k++)
  301.                     if (l3[i][j][k] != (long) (i + j + k - 3 * NO))
  302.                         printf("long: after allocate l3[%d][%d][%d] = %ld != %d\n",
  303.                                i, j, k, l3[i][j][k], i + j + k - 3 * NO);
  304.         l3_free(l3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  305.     }
  306.  
  307.     {
  308.         int            *i1, **i2, ***i3;
  309.  
  310.         printf("checking int 1 \n");
  311.         if (xx_amount() != 0L)
  312.             printf("int: amount == %ld", xx_amount());
  313.         i1 = i1_alloc(NB, NE);
  314.         for (i = NB; i <= NE; i++)
  315.             i1[i] = (int) i;
  316.         for (i = NB; i <= NE; i++)
  317.             if (i1[i] != (int) i)
  318.                 printf("int: after allocate i1[%d] = %d != %d\n",
  319.                        i, i1[i], i);
  320.         i1 = i1_renum(i1, NB, NE, NB + NO, NE + NO);
  321.         for (i = NB + NO; i <= NE + NO; i++)
  322.             if (i1[i] != (int) (i - NO))
  323.                 printf("int: after renum i1[%d] = %d != %d\n",
  324.                        i, i1[i], i - NO);
  325.         i1_free(i1, NB + NO, NE + NO);
  326.  
  327.  
  328.         printf("checking int 2 \n");
  329.         if (xx_amount() != 0L)
  330.             printf("int: amount == %ld", xx_amount());
  331.         i2 = i2_alloc(NB, NE, NB, NE);
  332.         for (i = NB; i <= NE; i++)
  333.             for (j = NB; j <= NE; j++)
  334.                 i2[i][j] = (int) (i + j);
  335.         for (i = NB; i <= NE; i++)
  336.             for (j = NB; j <= NE; j++)
  337.                 if (i2[i][j] != (int) (i + j))
  338.                     printf("int: after allocate i2[%d][%d] = %d != %d\n",
  339.                            i, j, i2[i][j], i + j);
  340.         i2 = i2_renum(i2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
  341.         for (i = NB + NO; i <= NE + NO; i++)
  342.             for (j = NB + NO; j <= NE + NO; j++)
  343.                 if (i2[i][j] != (int) (i + j - NO - NO))
  344.                     printf("int: after allocate i2[%d][%d] = %d != %d\n",
  345.                        i, j, i2[i][j], i + j - NO - NO);
  346.         i2_free(i2, NB + NO, NE + NO, NB + NO, NE + NO);
  347.  
  348.         printf("checking int 3 \n");
  349.         if (xx_amount() != 0L)
  350.             printf("int: amount == %ld", xx_amount());
  351.         i3 = i3_alloc(NB, NE, NB, NE, NB, NE);
  352.         for (i = NB; i <= NE; i++)
  353.             for (j = NB; j <= NE; j++)
  354.                 for (k = NB; k <= NE; k++)
  355.                     i3[i][j][k] = (int) (i + j + k);
  356.         for (i = NB; i <= NE; i++)
  357.             for (j = NB; j <= NE; j++)
  358.                 for (k = NB; k <= NE; k++)
  359.                     if (i3[i][j][k] != (int) (i + j + k))
  360.                         printf("int: after allocate i3[%d][%d][%d] = %d != %d\n",
  361.                                i, j, k, i3[i][j][k], i + j + k);
  362.         i3 = i3_renum(i3, NB, NE, NB, NE, NB, NE,
  363.               NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  364.         for (i = NB + NO; i <= NE + NO; i++)
  365.             for (j = NB + NO; j <= NE + NO; j++)
  366.                 for (k = NB + NO; k <= NE + NO; k++)
  367.                     if (i3[i][j][k] != (int) (i + j + k - 3 * NO))
  368.                         printf("int: after allocate i3[%d][%d][%d] = %d != %d\n",
  369.                                i, j, k, i3[i][j][k], i + j + k - 3 * NO);
  370.         i3_free(i3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  371.     }
  372.  
  373.     {
  374.         float          *f1, **f2, ***f3;
  375.  
  376.         printf("checking float 1 \n");
  377.         if (xx_amount() != 0L)
  378.             printf("float: amount == %ld", xx_amount());
  379.         f1 = f1_alloc(NB, NE);
  380.         for (i = NB; i <= NE; i++)
  381.             f1[i] = (float) i;
  382.         for (i = NB; i <= NE; i++)
  383.             if (f1[i] != (float) i)
  384.                 printf("float: after allocate f1[%d] = %f != %d\n",
  385.                        i, f1[i], i);
  386.         f1 = f1_renum(f1, NB, NE, NB + NO, NE + NO);
  387.         for (i = NB + NO; i <= NE + NO; i++)
  388.             if (f1[i] != (float) (i - NO))
  389.                 printf("float: after renum f1[%d] = %f != %d\n",
  390.                        i, f1[i], i - NO);
  391.         f1_free(f1, NB + NO, NE + NO);
  392.  
  393.  
  394.         printf("checking float 2 \n");
  395.         if (xx_amount() != 0L)
  396.             printf("float: amount == %ld", xx_amount());
  397.         f2 = f2_alloc(NB, NE, NB, NE);
  398.         for (i = NB; i <= NE; i++)
  399.             for (j = NB; j <= NE; j++)
  400.                 f2[i][j] = (float) (i + j);
  401.         for (i = NB; i <= NE; i++)
  402.             for (j = NB; j <= NE; j++)
  403.                 if (f2[i][j] != (float) (i + j))
  404.                     printf("float: after allocate f2[%d][%d] = %f != %d\n",
  405.                            i, j, f2[i][j], i + j);
  406.         f2 = f2_renum(f2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
  407.         for (i = NB + NO; i <= NE + NO; i++)
  408.             for (j = NB + NO; j <= NE + NO; j++)
  409.                 if (f2[i][j] != (float) (i + j - NO - NO))
  410.                     printf("float: after allocate f2[%d][%d] = %f != %d\n",
  411.                        i, j, f2[i][j], i + j - NO - NO);
  412.         f2_free(f2, NB + NO, NE + NO, NB + NO, NE + NO);
  413.  
  414.         printf("checking float 3 \n");
  415.         if (xx_amount() != 0L)
  416.             printf("float: amount == %ld", xx_amount());
  417.         f3 = f3_alloc(NB, NE, NB, NE, NB, NE);
  418.         for (i = NB; i <= NE; i++)
  419.             for (j = NB; j <= NE; j++)
  420.                 for (k = NB; k <= NE; k++)
  421.                     f3[i][j][k] = (float) (i + j + k);
  422.         for (i = NB; i <= NE; i++)
  423.             for (j = NB; j <= NE; j++)
  424.                 for (k = NB; k <= NE; k++)
  425.                     if (f3[i][j][k] != (float) (i + j + k))
  426.                         printf("float: after allocate f3[%d][%d][%d] = %f != %d\n",
  427.                                i, j, k, f3[i][j][k], i + j + k);
  428.         f3 = f3_renum(f3, NB, NE, NB, NE, NB, NE,
  429.               NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  430.         for (i = NB + NO; i <= NE + NO; i++)
  431.             for (j = NB + NO; j <= NE + NO; j++)
  432.                 for (k = NB + NO; k <= NE + NO; k++)
  433.                     if (f3[i][j][k] != (float) (i + j + k - 3 * NO))
  434.                         printf("float: after allocate f3[%d][%d][%d] = %f != %d\n",
  435.                                i, j, k, f3[i][j][k], i + j + k - 3 * NO);
  436.         f3_free(f3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  437.     }
  438.  
  439.     {
  440.         double         *d1, **d2, ***d3;
  441.  
  442.         printf("checking double 1 \n");
  443.         if (xx_amount() != 0L)
  444.             printf("double: amount == %ld", xx_amount());
  445.         d1 = d1_alloc(NB, NE);
  446.         for (i = NB; i <= NE; i++)
  447.             d1[i] = (double) i;
  448.         for (i = NB; i <= NE; i++)
  449.             if (d1[i] != (double) i)
  450.                 printf("double: after allocate d1[%d] = %lf != %d\n",
  451.                        i, d1[i], i);
  452.         d1 = d1_renum(d1, NB, NE, NB + NO, NE + NO);
  453.         for (i = NB + NO; i <= NE + NO; i++)
  454.             if (d1[i] != (double) (i - NO))
  455.                 printf("double: after renum d1[%d] = %lf != %d\n",
  456.                        i, d1[i], i - NO);
  457.         d1_free(d1, NB + NO, NE + NO);
  458.  
  459.  
  460.         printf("checking double 2 \n");
  461.         if (xx_amount() != 0L)
  462.             printf("double: amount == %ld", xx_amount());
  463.         d2 = d2_alloc(NB, NE, NB, NE);
  464.         for (i = NB; i <= NE; i++)
  465.             for (j = NB; j <= NE; j++)
  466.                 d2[i][j] = (double) (i + j);
  467.         for (i = NB; i <= NE; i++)
  468.             for (j = NB; j <= NE; j++)
  469.                 if (d2[i][j] != (double) (i + j))
  470.                     printf("double: after allocate d2[%d][%d] = %lf != %d\n",
  471.                            i, j, d2[i][j], i + j);
  472.         d2 = d2_renum(d2, NB, NE, NB, NE, NB + NO, NE + NO, NB + NO, NE + NO);
  473.         for (i = NB + NO; i <= NE + NO; i++)
  474.             for (j = NB + NO; j <= NE + NO; j++)
  475.                 if (d2[i][j] != (double) (i + j - NO - NO))
  476.                     printf("double: after allocate d2[%d][%d] = %lf != %d\n",
  477.                        i, j, d2[i][j], i + j - NO - NO);
  478.         d2_free(d2, NB + NO, NE + NO, NB + NO, NE + NO);
  479.  
  480.         printf("checking double 3 \n");
  481.         if (xx_amount() != 0L)
  482.             printf("double: amount == %ld", xx_amount());
  483.         d3 = d3_alloc(NB, NE, NB, NE, NB, NE);
  484.         for (i = NB; i <= NE; i++)
  485.             for (j = NB; j <= NE; j++)
  486.                 for (k = NB; k <= NE; k++)
  487.                     d3[i][j][k] = (double) (i + j + k);
  488.         for (i = NB; i <= NE; i++)
  489.             for (j = NB; j <= NE; j++)
  490.                 for (k = NB; k <= NE; k++)
  491.                     if (d3[i][j][k] != (double) (i + j + k))
  492.                         printf("double: after allocate d3[%d][%d][%d] = %lf != %d\n",
  493.                                i, j, k, d3[i][j][k], i + j + k);
  494.         d3 = d3_renum(d3, NB, NE, NB, NE, NB, NE,
  495.               NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  496.         for (i = NB + NO; i <= NE + NO; i++)
  497.             for (j = NB + NO; j <= NE + NO; j++)
  498.                 for (k = NB + NO; k <= NE + NO; k++)
  499.                     if (d3[i][j][k] != (double) (i + j + k - 3 * NO))
  500.                         printf("double: after allocate d3[%d][%d][%d] = %lf != %d\n",
  501.                                i, j, k, d3[i][j][k], i + j + k - 3 * NO);
  502.         d3_free(d3, NB + NO, NE + NO, NB + NO, NE + NO, NB + NO, NE + NO);
  503.     }
  504.  
  505.     exit(0);
  506. }
  507.