home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / hdf / unix / hdf3_2r2.lha / HDF3.2r2 / test / tsdnmms.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-28  |  14.0 KB  |  487 lines

  1. /***************************************************************************
  2. *
  3. *
  4. *                         NCSA HDF version 3.2r2
  5. *                            October 30, 1992
  6. *
  7. * NCSA HDF Version 3.2 source code and documentation are in the public
  8. * domain.  Specifically, we give to the public domain all rights for future
  9. * licensing of the source code, all resale rights, and all publishing rights.
  10. *
  11. * We ask, but do not require, that the following message be included in all
  12. * derived works:
  13. *
  14. * Portions developed at the National Center for Supercomputing Applications at
  15. * the University of Illinois at Urbana-Champaign, in collaboration with the
  16. * Information Technology Institute of Singapore.
  17. *
  18. * THE UNIVERSITY OF ILLINOIS GIVES NO WARRANTY, EXPRESSED OR IMPLIED, FOR THE
  19. * SOFTWARE AND/OR DOCUMENTATION PROVIDED, INCLUDING, WITHOUT LIMITATION,
  20. * WARRANTY OF MERCHANTABILITY AND WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE
  21. *
  22. ****************************************************************************
  23. */
  24.  
  25. #ifdef RCSID
  26. static char RcsId[] = "@(#)$Revision: 1.4 $";
  27. #endif
  28. /*
  29. $Header: /hdf/hdf/v3.2r2/test/RCS/tsdnmms.c,v 1.4 1992/07/08 22:05:20 sxu beta koziol $
  30.  
  31. $Log: tsdnmms.c,v $
  32.  * Revision 1.4  1992/07/08  22:05:20  sxu
  33.  * Changed DFSDgetmaxmin() to DFSDgetrange().
  34.  * Changed DFSDsetmaxmin() to DFSDsetrange().
  35.  *
  36.  * Revision 1.3  1992/05/31  15:27:30  mfolk
  37.  * Changed rank and dims[2] to int32 to satisfy Convex.
  38.  *
  39.  * Revision 1.2  1992/04/28  18:26:38  dilg
  40.  * Changed absolute path to relative path for include files.
  41.  *
  42.  * Revision 1.1  1992/04/27  17:31:08  sxu
  43.  * Initial revision
  44.  *
  45.  * Revision 1.1  1992/02/26  20:08:43  mfolk
  46.  * Initial revision
  47.  *
  48. */
  49. #include "hdf.h"
  50. #include "dfsd.h"
  51.  
  52. float64 f64[10][10], tf64[10][10];
  53. float64 f64scale[10], tf64scale[10];
  54. float64 f64max = 40.0, f64min = 0.0;
  55. float64 tf64max, tf64min;
  56.  
  57. float32 f32[10][10], tf32[10][10];
  58. float32 f32scale[10], tf32scale[10];
  59. float32 f32max = 40.0, f32min = 0.0;
  60. float32 tf32max, tf32min;
  61.  
  62. int8 i8[10][10], ti8[10][10];
  63. int8 i8scale[10], ti8scale[10];
  64. int8 i8max = 127, i8min = -128;
  65. int8 ti8max, ti8min;
  66.  
  67. uint8 ui8[10][10], tui8[10][10];
  68. uint8 ui8scale[10], tui8scale[10];
  69. uint8 ui8max = 255, ui8min = 0;
  70. uint8 tui8max, tui8min;
  71.  
  72. int16 i16[10][10], ti16[10][10];
  73. int16 i16scale[10], ti16scale[10];
  74. int16 i16max = 1200, i16min = -1200;
  75. int16 ti16max, ti16min;
  76.  
  77. uint16 ui16[10][10], tui16[10][10];
  78. uint16 ui16scale[10], tui16scale[10];
  79. uint16 ui16max = 20000, ui16min = 0;
  80. uint16 tui16max, tui16min;
  81.  
  82. int32 i32[10][10], ti32[10][10];
  83. int32 i32scale[10], ti32scale[10];
  84. int32 i32max = 99999999, i32min = -999999999;
  85. int32 ti32max, ti32min;
  86.  
  87. uint32 ui32[10][10], tui32[10][10];
  88. uint32 ui32scale[10], tui32scale[10];
  89. uint32 ui32max = 999999999, ui32min = 0;
  90. uint32 tui32max, tui32min;
  91.  
  92. int main()
  93. {
  94.     int i, j, err, err1, err2, err3;
  95.     int32 rank, dims[2];
  96.     int number_failed = 0;
  97.  
  98.  
  99.     rank = 2;
  100.     dims[0] = 10;
  101.     dims[1] = 10;
  102.  
  103.     printf("Creating arrays...\n");
  104.  
  105.     for (i=0; i<10; i++) {
  106.         for (j=0; j<10; j++) {
  107.  
  108.         f64[i][j] = (i * 40) + j;    /* range: 0 ~ 4-billion */
  109.  
  110.         f32[i][j] = (i * 40) + j;    /* range: 0 ~ 4-billion */
  111.  
  112.         i8[i][j] = (i * 10) + j;        /* range: 0 ~ 100 */
  113.         ui8[i][j] = (i * 20) + j;        /* range: 0 ~ 200 */
  114.  
  115.         i16[i][j] = (i * 3000) + j;        /* range: 0 ~ 30000 */
  116.         ui16[i][j] = (i * 6000) + j;    /* range: 0 ~ 60000 */
  117.  
  118.         i32[i][j] = (i * 20) + j;    /* range: 0 ~ 2-billion */
  119.         ui32[i][j] = (i * 40) + j;    /* range: 0 ~ 4-billion */
  120.     }
  121.  
  122.     f64scale[i] = (i * 40) + j;    /* range: 0 ~ 4-billion */
  123.  
  124.     f32scale[i] = (i * 40) + j;    /* range: 0 ~ 4-billion */
  125.  
  126.     i8scale[i] = (i * 10) + j;        /* range: 0 ~ 100 */
  127.     ui8scale[i] = (i * 20) + j;        /* range: 0 ~ 200 */
  128.  
  129.     i16scale[i] = (i * 3000) + j;        /* range: 0 ~ 30000 */
  130.     ui16scale[i] = (i * 6000) + j;    /* range: 0 ~ 60000 */
  131.  
  132.     i32scale[i] = (i * 20) + j;    /* range: 0 ~ 2-billion */
  133.     ui32scale[i] = (i * 40) + j;    /* range: 0 ~ 4-billion */
  134.     }
  135.  
  136.     DFSDsetdims(rank, dims);
  137.  
  138.     printf("Writing arrays to single file...\n");
  139.  
  140.     DFSDsetNT(DFNT_NFLOAT64);
  141.     err3=DFSDsetdimscale(1, (int32)10, (void *)f64scale);
  142.     err2=DFSDsetrange(&f64max, &f64min);
  143.     err = DFSDadddata("nntcheck.hdf", rank, dims, f64);
  144.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  145.         number_failed++;
  146.     printf("%d, %d, %d\n", err3, err2, err);
  147.  
  148.     DFSDsetNT(DFNT_NFLOAT32);
  149.     err3=DFSDsetdimscale(1, (int32)10, (void *)f32scale);
  150.     err2=DFSDsetrange(&f32max, &f32min);
  151.     err = DFSDadddata("nntcheck.hdf", rank, dims, f32);
  152.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  153.         number_failed++;
  154.     printf("%d, %d, %d\n", err3, err2, err);
  155.  
  156.     DFSDsetNT(DFNT_NINT8);
  157.     err3=DFSDsetdimscale(1, (int32)10, (void *)i8scale);
  158.     err2=DFSDsetrange(&i8max, &i8min);
  159.     err = DFSDadddata("nntcheck.hdf", rank, dims, i8);
  160.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  161.         number_failed++;
  162.     printf("%d, %d, %d\n", err3, err2, err);
  163.  
  164.     DFSDsetNT(DFNT_NUINT8);
  165.     err3=DFSDsetdimscale(1, (int32)10, (void *)ui8scale);
  166.     err2=DFSDsetrange(&ui8max, &ui8min);
  167.     err = DFSDadddata("nntcheck.hdf", rank, dims, ui8);
  168.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  169.         number_failed++;
  170.     printf("%d, %d, %d\n", err3, err2, err);
  171.  
  172.     DFSDsetNT(DFNT_NINT16);
  173.     err3=DFSDsetdimscale(1, (int32)10, (void *)i16scale);
  174.     err2=DFSDsetrange(&i16max, &i16min);
  175.     err = DFSDadddata("nntcheck.hdf", rank, dims, i16);
  176.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  177.         number_failed++;
  178.     printf("%d, %d, %d\n", err3, err2, err);
  179.  
  180.     DFSDsetNT(DFNT_NUINT16);
  181.     err3=DFSDsetdimscale(1, (int32)10, (void *)ui16scale);
  182.     err2=DFSDsetrange(&ui16max, &ui16min);
  183.     err = DFSDadddata("nntcheck.hdf", rank, dims, ui16);
  184.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  185.         number_failed++;
  186.     printf("%d, %d, %d\n", err3, err2, err);
  187.  
  188.     DFSDsetNT(DFNT_NINT32);
  189.     err3=DFSDsetdimscale(1, (int32)10, (void *)i32scale);
  190.     err2=DFSDsetrange(&i32max, &i32min);
  191.     err = DFSDadddata("nntcheck.hdf", rank, dims, i32);
  192.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  193.         number_failed++;
  194.     printf("%d, %d, %d\n", err3, err2, err);
  195.  
  196.     DFSDsetNT(DFNT_NUINT32);
  197.     err3= DFSDsetdimscale(1, (int32)10, (void *)ui32scale);
  198.     err2=DFSDsetrange(&ui32max, &ui32min);
  199.     err = DFSDadddata("nntcheck.hdf", rank, dims, ui32);
  200.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  201.         number_failed++;
  202.     printf("%d, %d, %d\n", err3, err2, err);
  203.  
  204.     printf("Reading arrays from single file...\n");
  205.  
  206.     err = DFSDgetdata("nntcheck.hdf", rank, dims, tf64);
  207.     err2 = DFSDgetdimscale(1, (int32)10, (void *)tf64scale);
  208.     err3 = DFSDgetrange(&tf64max, &tf64min);
  209.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  210.         number_failed++;
  211.     printf("%d, %d, %d\n", err3, err2, err);
  212.  
  213.     err = DFSDgetdata("nntcheck.hdf", rank, dims, tf32);
  214.     err2 = DFSDgetdimscale(1, (int32)10, (void *)tf32scale);
  215.     err3 = DFSDgetrange(&tf32max, &tf32min);
  216.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  217.         number_failed++;
  218.     printf("%d, %d, %d\n", err3, err2, err);
  219.  
  220.     err = DFSDgetdata("nntcheck.hdf", rank, dims, ti8);
  221.     err2 = DFSDgetdimscale(1, (int32)10, (void *)ti8scale);
  222.     err3 = DFSDgetrange(&ti8max, &ti8min);
  223.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  224.         number_failed++;
  225.     printf("%d, %d, %d\n", err, err2, err3);
  226.  
  227.     err = DFSDgetdata("nntcheck.hdf", rank, dims, tui8);
  228.     err2 = DFSDgetdimscale(1, (int32)10, (void *)tui8scale);
  229.     err3 = DFSDgetrange(&tui8max, &tui8min);
  230.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  231.         number_failed++;
  232.     printf("%d, %d, %d\n", err, err2, err3);
  233.  
  234.     err = DFSDgetdata("nntcheck.hdf", rank, dims, ti16);
  235.     err2 = DFSDgetdimscale(1, (int32)10, (void *)ti16scale);
  236.     err3 = DFSDgetrange(&ti16max, &ti16min);
  237.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  238.         number_failed++;
  239.     printf("%d, %d, %d\n", err, err2, err3);
  240.  
  241.     err = DFSDgetdata("nntcheck.hdf", rank, dims, tui16);
  242.     err2 = DFSDgetdimscale(1, (int32)10, (void *)tui16scale);
  243.     err3 = DFSDgetrange(&tui16max, &tui16min);
  244.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  245.         number_failed++;
  246.     printf("%d, %d, %d\n", err, err2, err3);
  247.  
  248.     err = DFSDgetdata("nntcheck.hdf", rank, dims, ti32);
  249.     err2 = DFSDgetdimscale(1, (int32)10, (void *)ti32scale);
  250.     err3 = DFSDgetrange(&ti32max, &ti32min);
  251.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  252.         number_failed++;
  253.     printf("%d, %d, %d\n", err, err2, err3);
  254.  
  255.     err = DFSDgetdata("nntcheck.hdf", rank, dims, tui32);
  256.     err2 = DFSDgetdimscale(1, (int32)10, (void *)tui32scale);
  257.     err3 = DFSDgetrange(&tui32max, &tui32min);
  258.     if (err3==FAIL || err2==FAIL || err==FAIL) 
  259.         number_failed++;
  260.     printf("%d, %d, %d\n", err, err2, err3);
  261.  
  262.     printf("Checking arrays from single file...\n\n");
  263.  
  264.     err = 0;
  265.     err1 = 0;
  266.     err2 = 0;
  267.     for (i=0; i<10; i++) {
  268.     for (j=0; j<10; j++)
  269.        if (f64[i][j] != tf64[i][j])
  270.            err = 1;
  271.     if (f64scale[i] != tf64scale[i])
  272.         err2 = 1;
  273.     }
  274.     if ((f64max != tf64max) || (f64min != tf64min)) 
  275.         err1 = 1;
  276.  
  277.     number_failed += err + err1 + err2;
  278.     if (err == 1) 
  279.     printf(">>> Test failed for float64 array.\n");
  280.     else 
  281.     printf("Test passed for float64 array.\n");
  282.     if (err2 == 1) 
  283.     printf(">>> Test failed for float64 scales.\n");
  284.     else 
  285.     printf("Test passed for float64 scales.\n");
  286.     if (err1 == 1)
  287.     printf(">>> Test failed for float64 max/min.\n");
  288.     else 
  289.     printf("Test passed for float64 max/min.\n");
  290.  
  291.     err = 0;
  292.     err1 = 0;
  293.     err2 = 0;
  294.     for (i=0; i<10; i++) {
  295.     for (j=0; j<10; j++)
  296.        if (f32[i][j] != tf32[i][j])
  297.            err = 1;
  298.     if (f32scale[i] != tf32scale[i])
  299.         err2 = 1;
  300.     }
  301.     if ((f32max != tf32max) || (f32min != tf32min)) 
  302.         err1 = 1;
  303.  
  304.     number_failed += err + err1 + err2;
  305.     if (err == 1) 
  306.     printf(">>> Test failed for float32 array.\n");
  307.     else 
  308.     printf("Test passed for float32 array.\n");
  309.     if (err2 == 1) 
  310.     printf(">>> Test failed for float32 scales.\n");
  311.     else 
  312.     printf("Test passed for float32 scales.\n");
  313.     if (err1 == 1)
  314.     printf(">>> Test failed for float32 max/min.\n");
  315.     else 
  316.     printf("Test passed for float32 max/min.\n");
  317.  
  318.     err = 0;
  319.     err1 = 0;
  320.     err2 = 0;
  321.     for (i=0; i<10; i++) {
  322.     for (j=0; j<10; j++)
  323.        if (i8[i][j] != ti8[i][j])
  324.            err = 1;
  325.     if (i8scale[i] != ti8scale[i])
  326.         err2 = 1;
  327.     }
  328.     if ((i8max != ti8max) || (i8min != ti8min)) 
  329.         err1 = 1;
  330.  
  331.     number_failed += err + err1 + err2;
  332.     if (err == 1)
  333.     printf(">>> Test failed for int8 array.\n");
  334.     else
  335.     printf("Test passed for int8 array.\n");
  336.     if (err2 == 1)
  337.     printf(">>> Test failed for int8 scales.\n");
  338.     else
  339.     printf("Test passed for int8 scales.\n");
  340.     if (err1 == 1)
  341.     printf(">>> Test failed for int8 max/min.\n");
  342.     else
  343.     printf("Test passed for int8 max/min.\n");
  344.  
  345.     err = 0;
  346.     err1 = 0;
  347.     err2 = 0;
  348.     for (i=0; i<10; i++) {
  349.     for (j=0; j<10; j++)
  350.        if (ui8[i][j] != tui8[i][j])
  351.            err = 1;
  352.     if (ui8scale[i] != tui8scale[i])
  353.         err2 = 1;
  354.     }
  355.     if ((ui8max != tui8max) || (ui8min != tui8min))
  356.         err1 = 1;
  357.  
  358.     number_failed += err + err1 + err2;
  359.     if (err == 1)
  360.     printf(">>> Test failed for uint8 array.\n");
  361.     else
  362.     printf("Test passed for uint8 array.\n");
  363.     if (err2 == 1)
  364.     printf(">>> Test failed for uint8 scales.\n");
  365.     else
  366.     printf("Test passed for uint8 scales.\n");
  367.     if  (err1 == 1)
  368.     printf(">>> Test failed for uint8 max/min.\n");
  369.     else
  370.     printf("Test passed for uint8 max/min.\n");
  371.  
  372.     err = 0;
  373.     err1 = 0;
  374.     err2 = 0;
  375.     for (i=0; i<10; i++) {
  376.     for (j=0; j<10; j++)
  377.        if (i16[i][j] != ti16[i][j])
  378.            err = 1;
  379.     if (i16scale[i] != ti16scale[i])
  380.         err2 = 1;
  381.     }
  382.     if ((i16max != ti16max) || (i16min != ti16min))
  383.         err1 = 1;
  384.  
  385.     number_failed += err + err1 + err2;
  386.     if (err == 1)
  387.     printf(">>> Test failed for int16 array.\n");
  388.     else
  389.     printf("Test passed for int16 array.\n");
  390.     if (err2 == 1)
  391.     printf(">>> Test failed for int16 scales.\n");
  392.     else
  393.     printf("Test passed for int16 scales.\n");
  394.     if (err1 == 1)
  395.     printf(">>> Test failed for int16 max/min.\n");
  396.     else
  397.     printf("Test passed for int16 max/min.\n");
  398.  
  399.     err = 0;
  400.     err1 = 0;
  401.     err2 = 0;
  402.     for (i=0; i<10; i++) {
  403.     for (j=0; j<10; j++)
  404.        if (ui16[i][j] != tui16[i][j])
  405.            err = 1;
  406.     if (ui16scale[i] != tui16scale[i])
  407.         err2 = 1;
  408.     }
  409.     if ((ui16max != tui16max) || (ui16min != tui16min))
  410.         err1 = 1;
  411.  
  412.     number_failed += err + err1 + err2;
  413.     if (err == 1)
  414.     printf(">>> Test failed for uint16 array.\n");
  415.     else
  416.     printf("Test passed for uint16 array.\n");
  417.     if (err2 == 1)
  418.     printf(">>> Test failed for uint16 scales.\n");
  419.     else
  420.     printf("Test passed for uint16 scales.\n");
  421.     if (err1 == 1)
  422.     printf(">>> Test failed for uint16 max/min.\n");
  423.     else
  424.     printf("Test passed for uint16 max/min.\n");
  425.  
  426.     err = 0;
  427.     err1 = 0;
  428.     err2 = 0;
  429.     for (i=0; i<10; i++) {
  430.     for (j=0; j<10; j++)
  431.        if (i32[i][j] != ti32[i][j])
  432.            err = 1;
  433.     if (i32scale[i] != ti32scale[i])
  434.         err2 = 1;
  435.     }
  436.     if ((i32max != ti32max) || (i32min != ti32min))
  437.         err1 = 1;
  438.  
  439.     number_failed += err + err1 + err2;
  440.     if (err == 1)
  441.     printf(">>> Test failed for int32 array.\n");
  442.     else
  443.     printf("Test passed for int32 array.\n");
  444.     if (err2 == 1)
  445.     printf(">>> Test failed for int32 scales.\n");
  446.     else
  447.     printf("Test passed for int32 scales.\n");
  448.     if (err1 == 1)
  449.     printf(">>> Test failed for int32 max/min.\n");
  450.     else
  451.     printf("Test passed for int32 max/min.\n");
  452.  
  453.     err = 0;
  454.     err1 = 0;
  455.     err2 = 0;
  456.     for (i=0; i<10; i++) {
  457.     for (j=0; j<10; j++)
  458.        if (ui32[i][j] != tui32[i][j])
  459.            err = 1;
  460.     if (ui32scale[i] != tui32scale[i])
  461.         err2 = 1;
  462.     }
  463.     if ((ui32max != tui32max) || (ui32min != tui32min))
  464.         err1 = 1;
  465.  
  466.     number_failed += err + err1 + err2;
  467.     if (err == 1)
  468.     printf(">>> Test failed for uint32 array.\n");
  469.     else
  470.     printf("Test passed for uint32 array.\n");
  471.     if (err2 == 1)
  472.     printf(">>> Test failed for uint32 scales.\n");
  473.     else
  474.     printf("Test passed for uint32 scales.\n");
  475.     if (err1 == 1)
  476.     printf(">>> Test failed for uint32 max/min.\n");
  477.     else
  478.     printf("Test passed for uint32 max/min.\n");
  479.  
  480.     if (number_failed > 0 ) {
  481.         printf("\n\t>>> %d TESTS FAILED <<<\n\n", number_failed);
  482.     }
  483.     else
  484.         printf("\n\t>>> ALL TESTS PASSED <<<\n\n");
  485.  
  486. }
  487.