VectorFactoriesTest.c

Go to the documentation of this file.
00001 /*************** <lalVerbatim file="VectorFactoriesTestCV"> ****
00002 $Id: VectorFactoriesTest.m4,v 1.8 2003/09/29 00:33:24 dwchin Exp $
00003 **************** </lalVerbatim> *******************************/
00004 
00005 /* <lalLaTeX>
00006 
00007 \subsection{Program \texttt{VectorFactoriesTest.c}}
00008 \label{ss:VectorFactoriesTest.c}
00009 
00010 A program to test create/destroy vector routines.
00011 
00012 \subsubsection*{Usage}
00013 \begin{verbatim}
00014 VectorFactoriesTest [options]
00015 Options:
00016   -h         print help
00017   -q         quiet: run silently
00018   -v         verbose: print extra information
00019   -d level   set lalDebugLevel to level
00020 \end{verbatim}
00021 
00022 \subsubsection*{Description}
00023 
00024 \subsubsection*{Exit codes}
00025 \begin{tabular}{|c|l|}
00026 \hline
00027  Code & Explanation                   \\
00028 \hline
00029 \tt 0 & Success, normal exit.         \\
00030 \tt 1 & Subroutine failed.            \\
00031 \hline
00032 \end{tabular}
00033 
00034 \subsubsection*{Algorithm}
00035 
00036 \subsubsection*{Uses}
00037 \begin{verbatim}
00038 lalDebugLevel
00039 TYPECODECreateVector()
00040 TYPECODEResizeVector()
00041 TYPECODEDestroyVector()
00042 \end{verbatim}
00043 
00044 \subsubsection*{Notes}
00045 
00046 \vfill{\footnotesize\input{VectorFactoriesTestCV}}
00047 
00048 </lalLaTeX> */
00049 
00050 #include <stdlib.h>
00051 #include <stdio.h>
00052 #include <string.h>
00053 
00054 #include <lal/LALConfig.h>
00055 #include <lal/PrintVector.h>
00056 
00057 #ifdef HAVE_UNISTD_H
00058 #include <unistd.h>
00059 #endif
00060 
00061 #ifdef HAVE_GETOPT_H
00062 #include <getopt.h>
00063 #endif
00064 
00065 #include <lal/LALStdlib.h>
00066 #include <lal/AVFactories.h>
00067 
00068 #define CODES_(x) #x
00069 #define CODES(x) CODES_(x)
00070 
00071 NRCSID( MAIN, "$Id: VectorFactoriesTest.m4,v 1.8 2003/09/29 00:33:24 dwchin Exp $" );
00072 
00073 extern char *optarg;
00074 extern int   optind;
00075 
00076 int lalDebugLevel = 0;
00077 int verbose    = 0;
00078 
00079 static void
00080 Usage (const char *program, int exitflag);
00081 
00082 static void
00083 ParseOptions (int argc, char *argv[]);
00084 
00085 static void
00086 TestStatus (LALStatus *status, const char *expectedCodes, int exitCode);
00087 
00088 static void
00089 ClearStatus (LALStatus *status);
00090 
00091 
00092 /* -*- C -*- */
00093 
00094 
00095 
00096 
00097 
00098 
00099 
00100 
00101 
00102 
00103 
00104 
00105 
00106 
00107 
00108 
00109 
00110 
00111 
00112 
00113 static void ZVectorFactoriesTest ( void )
00114 {
00115   const  UINT4   length = 16;
00116   static LALStatus  status;
00117   static COMPLEX16Vector  *vector = ( COMPLEX16Vector * )NULL;
00118   static COMPLEX16Vector   vstore;
00119 
00120 
00121   /*
00122    *
00123    * Test ordinary behavior.
00124    *
00125    */
00126 
00127 
00128   LALZCreateVector ( &status, &vector, length );
00129   TestStatus( &status, CODES( 0 ), 1 );
00130   
00131   if (verbose)
00132     {
00133       printf("VFT line %d:\n", __LINE__);
00134       printf("  vector->length = %d\n", vector->length);
00135     }
00136   
00137   memset( vector->data, 0, length*sizeof( COMPLEX16 ) );
00138 
00139   if (verbose)
00140     {
00141       LALZPrintVector ( vector );
00142     }
00143   
00144 
00145   /* Resize up */
00146   LALZResizeVector ( &status, &vector, length*3 );
00147   TestStatus( &status, CODES( 0 ), 1 );
00148   
00149   if (verbose)
00150     {
00151       printf("VFT line %d:\n", __LINE__);
00152       printf("  vector->length = %d\n", vector->length);
00153     }
00154 
00155 
00156   memset( vector->data, 0, length*sizeof( COMPLEX16 ) );
00157   
00158   if (verbose)
00159     {
00160       LALZPrintVector ( vector );
00161     }
00162 
00163   /* Resize down */
00164   LALZResizeVector ( &status, &vector, length*2 );
00165   TestStatus( &status, CODES( 0 ), 1 );
00166 
00167   if (verbose)
00168     {
00169       printf("VFT line %d:\n", __LINE__);
00170       printf("  vector->length = %d\n", vector->length);
00171       LALZPrintVector ( vector );
00172     }
00173 
00174   /* Destroy */
00175   LALZDestroyVector ( &status, &vector );
00176   TestStatus( &status, CODES( 0 ), 1 );
00177   
00178   if (verbose)
00179     {
00180       printf("VFT line %d:\n", __LINE__);
00181       printf("  vector = %#x\n", (unsigned int)vector);
00182     }
00183 
00184   LALCheckMemoryLeaks();
00185   
00186   /* Check the resize function with create/destroy */
00187   LALZResizeVector ( &status, &vector, length );
00188   TestStatus( &status, CODES( 0 ), 1 );
00189 
00190   if (verbose)
00191     {
00192       printf("VFT line %d:\n", __LINE__);
00193       printf("  vector->length = %d\n", vector->length);
00194     }
00195 
00196   memset( vector->data, 0, length*sizeof( COMPLEX16 ) );
00197 
00198   if (verbose)
00199     {
00200       LALZPrintVector ( vector );
00201     }
00202 
00203   LALZResizeVector ( &status, &vector, 0 );
00204   TestStatus( &status, CODES( 0 ), 1);
00205 
00206   if (verbose)
00207     {
00208       printf("VFT line %d:\n", __LINE__);
00209       printf("  vector = %#x\n", (unsigned int)vector);
00210     }
00211 
00212   LALCheckMemoryLeaks();
00213 
00214 
00215   /*
00216    *
00217    * Test error codes.
00218    *
00219    */
00220 
00221 #ifndef LAL_NDEBUG
00222 
00223   if ( ! lalNoDebug )
00224   {
00225     if (verbose)
00226       {
00227         printf("VFT line %d\n", __LINE__);
00228         printf("  vector = %#x\n", (unsigned int)vector);
00229       }
00230     
00231     LALZCreateVector ( &status, &vector, 0 );
00232     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00233 
00234     LALZResizeVector ( &status, &vector, 0 );
00235     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00236     
00237     LALZDestroyVector ( &status, NULL );
00238     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00239 
00240     LALZCreateVector ( &status, NULL, length );
00241     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00242 
00243     LALZDestroyVector ( &status, &vector );
00244     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00245 
00246     vector = &vstore;
00247     LALZCreateVector ( &status, &vector, length );
00248     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00249 
00250     LALZDestroyVector ( &status, &vector );
00251     TestStatus( &status, CODES( AVFACTORIESH_EDPTR ), 1 );
00252   }
00253 
00254 #else
00255   vector = &vstore;
00256 #endif
00257 
00258   LALCheckMemoryLeaks();
00259   printf( "PASS: tests of LALZCreateVector, LALZResizeVector, and LALZDestroyVector \n" );
00260           
00261   return;
00262 }
00263 
00264 
00265 
00266 /* -*- C -*- */
00267 
00268 
00269 
00270 
00271 
00272 
00273 
00274 
00275 
00276 
00277 
00278 
00279 
00280 
00281 
00282 
00283 
00284 
00285 
00286 
00287 static void CVectorFactoriesTest ( void )
00288 {
00289   const  UINT4   length = 16;
00290   static LALStatus  status;
00291   static COMPLEX8Vector  *vector = ( COMPLEX8Vector * )NULL;
00292   static COMPLEX8Vector   vstore;
00293 
00294 
00295   /*
00296    *
00297    * Test ordinary behavior.
00298    *
00299    */
00300 
00301 
00302   LALCCreateVector ( &status, &vector, length );
00303   TestStatus( &status, CODES( 0 ), 1 );
00304   
00305   if (verbose)
00306     {
00307       printf("VFT line %d:\n", __LINE__);
00308       printf("  vector->length = %d\n", vector->length);
00309     }
00310   
00311   memset( vector->data, 0, length*sizeof( COMPLEX8 ) );
00312 
00313   if (verbose)
00314     {
00315       LALCPrintVector ( vector );
00316     }
00317   
00318 
00319   /* Resize up */
00320   LALCResizeVector ( &status, &vector, length*3 );
00321   TestStatus( &status, CODES( 0 ), 1 );
00322   
00323   if (verbose)
00324     {
00325       printf("VFT line %d:\n", __LINE__);
00326       printf("  vector->length = %d\n", vector->length);
00327     }
00328 
00329 
00330   memset( vector->data, 0, length*sizeof( COMPLEX8 ) );
00331   
00332   if (verbose)
00333     {
00334       LALCPrintVector ( vector );
00335     }
00336 
00337   /* Resize down */
00338   LALCResizeVector ( &status, &vector, length*2 );
00339   TestStatus( &status, CODES( 0 ), 1 );
00340 
00341   if (verbose)
00342     {
00343       printf("VFT line %d:\n", __LINE__);
00344       printf("  vector->length = %d\n", vector->length);
00345       LALCPrintVector ( vector );
00346     }
00347 
00348   /* Destroy */
00349   LALCDestroyVector ( &status, &vector );
00350   TestStatus( &status, CODES( 0 ), 1 );
00351   
00352   if (verbose)
00353     {
00354       printf("VFT line %d:\n", __LINE__);
00355       printf("  vector = %#x\n", (unsigned int)vector);
00356     }
00357 
00358   LALCheckMemoryLeaks();
00359   
00360   /* Check the resize function with create/destroy */
00361   LALCResizeVector ( &status, &vector, length );
00362   TestStatus( &status, CODES( 0 ), 1 );
00363 
00364   if (verbose)
00365     {
00366       printf("VFT line %d:\n", __LINE__);
00367       printf("  vector->length = %d\n", vector->length);
00368     }
00369 
00370   memset( vector->data, 0, length*sizeof( COMPLEX8 ) );
00371 
00372   if (verbose)
00373     {
00374       LALCPrintVector ( vector );
00375     }
00376 
00377   LALCResizeVector ( &status, &vector, 0 );
00378   TestStatus( &status, CODES( 0 ), 1);
00379 
00380   if (verbose)
00381     {
00382       printf("VFT line %d:\n", __LINE__);
00383       printf("  vector = %#x\n", (unsigned int)vector);
00384     }
00385 
00386   LALCheckMemoryLeaks();
00387 
00388 
00389   /*
00390    *
00391    * Test error codes.
00392    *
00393    */
00394 
00395 #ifndef LAL_NDEBUG
00396 
00397   if ( ! lalNoDebug )
00398   {
00399     if (verbose)
00400       {
00401         printf("VFT line %d\n", __LINE__);
00402         printf("  vector = %#x\n", (unsigned int)vector);
00403       }
00404     
00405     LALCCreateVector ( &status, &vector, 0 );
00406     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00407 
00408     LALCResizeVector ( &status, &vector, 0 );
00409     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00410     
00411     LALCDestroyVector ( &status, NULL );
00412     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00413 
00414     LALCCreateVector ( &status, NULL, length );
00415     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00416 
00417     LALCDestroyVector ( &status, &vector );
00418     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00419 
00420     vector = &vstore;
00421     LALCCreateVector ( &status, &vector, length );
00422     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00423 
00424     LALCDestroyVector ( &status, &vector );
00425     TestStatus( &status, CODES( AVFACTORIESH_EDPTR ), 1 );
00426   }
00427 
00428 #else
00429   vector = &vstore;
00430 #endif
00431 
00432   LALCheckMemoryLeaks();
00433   printf( "PASS: tests of LALCCreateVector, LALCResizeVector, and LALCDestroyVector \n" );
00434           
00435   return;
00436 }
00437 
00438 
00439 
00440 /* -*- C -*- */
00441 
00442 
00443 
00444 
00445 
00446 
00447 
00448 
00449 
00450 
00451 
00452 
00453 
00454 
00455 
00456 
00457 
00458 
00459 
00460 
00461 static void DVectorFactoriesTest ( void )
00462 {
00463   const  UINT4   length = 16;
00464   static LALStatus  status;
00465   static REAL8Vector  *vector = ( REAL8Vector * )NULL;
00466   static REAL8Vector   vstore;
00467 
00468 
00469   /*
00470    *
00471    * Test ordinary behavior.
00472    *
00473    */
00474 
00475 
00476   LALDCreateVector ( &status, &vector, length );
00477   TestStatus( &status, CODES( 0 ), 1 );
00478   
00479   if (verbose)
00480     {
00481       printf("VFT line %d:\n", __LINE__);
00482       printf("  vector->length = %d\n", vector->length);
00483     }
00484   
00485   memset( vector->data, 0, length*sizeof( REAL8 ) );
00486 
00487   if (verbose)
00488     {
00489       LALDPrintVector ( vector );
00490     }
00491   
00492 
00493   /* Resize up */
00494   LALDResizeVector ( &status, &vector, length*3 );
00495   TestStatus( &status, CODES( 0 ), 1 );
00496   
00497   if (verbose)
00498     {
00499       printf("VFT line %d:\n", __LINE__);
00500       printf("  vector->length = %d\n", vector->length);
00501     }
00502 
00503 
00504   memset( vector->data, 0, length*sizeof( REAL8 ) );
00505   
00506   if (verbose)
00507     {
00508       LALDPrintVector ( vector );
00509     }
00510 
00511   /* Resize down */
00512   LALDResizeVector ( &status, &vector, length*2 );
00513   TestStatus( &status, CODES( 0 ), 1 );
00514 
00515   if (verbose)
00516     {
00517       printf("VFT line %d:\n", __LINE__);
00518       printf("  vector->length = %d\n", vector->length);
00519       LALDPrintVector ( vector );
00520     }
00521 
00522   /* Destroy */
00523   LALDDestroyVector ( &status, &vector );
00524   TestStatus( &status, CODES( 0 ), 1 );
00525   
00526   if (verbose)
00527     {
00528       printf("VFT line %d:\n", __LINE__);
00529       printf("  vector = %#x\n", (unsigned int)vector);
00530     }
00531 
00532   LALCheckMemoryLeaks();
00533   
00534   /* Check the resize function with create/destroy */
00535   LALDResizeVector ( &status, &vector, length );
00536   TestStatus( &status, CODES( 0 ), 1 );
00537 
00538   if (verbose)
00539     {
00540       printf("VFT line %d:\n", __LINE__);
00541       printf("  vector->length = %d\n", vector->length);
00542     }
00543 
00544   memset( vector->data, 0, length*sizeof( REAL8 ) );
00545 
00546   if (verbose)
00547     {
00548       LALDPrintVector ( vector );
00549     }
00550 
00551   LALDResizeVector ( &status, &vector, 0 );
00552   TestStatus( &status, CODES( 0 ), 1);
00553 
00554   if (verbose)
00555     {
00556       printf("VFT line %d:\n", __LINE__);
00557       printf("  vector = %#x\n", (unsigned int)vector);
00558     }
00559 
00560   LALCheckMemoryLeaks();
00561 
00562 
00563   /*
00564    *
00565    * Test error codes.
00566    *
00567    */
00568 
00569 #ifndef LAL_NDEBUG
00570 
00571   if ( ! lalNoDebug )
00572   {
00573     if (verbose)
00574       {
00575         printf("VFT line %d\n", __LINE__);
00576         printf("  vector = %#x\n", (unsigned int)vector);
00577       }
00578     
00579     LALDCreateVector ( &status, &vector, 0 );
00580     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00581 
00582     LALDResizeVector ( &status, &vector, 0 );
00583     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00584     
00585     LALDDestroyVector ( &status, NULL );
00586     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00587 
00588     LALDCreateVector ( &status, NULL, length );
00589     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00590 
00591     LALDDestroyVector ( &status, &vector );
00592     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00593 
00594     vector = &vstore;
00595     LALDCreateVector ( &status, &vector, length );
00596     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00597 
00598     LALDDestroyVector ( &status, &vector );
00599     TestStatus( &status, CODES( AVFACTORIESH_EDPTR ), 1 );
00600   }
00601 
00602 #else
00603   vector = &vstore;
00604 #endif
00605 
00606   LALCheckMemoryLeaks();
00607   printf( "PASS: tests of LALDCreateVector, LALDResizeVector, and LALDDestroyVector \n" );
00608           
00609   return;
00610 }
00611 
00612 
00613 
00614 /* -*- C -*- */
00615 
00616 
00617 
00618 
00619 
00620 
00621 
00622 
00623 
00624 
00625 
00626 
00627 
00628 
00629 
00630 
00631 
00632 
00633 
00634 
00635 static void SVectorFactoriesTest ( void )
00636 {
00637   const  UINT4   length = 16;
00638   static LALStatus  status;
00639   static REAL4Vector  *vector = ( REAL4Vector * )NULL;
00640   static REAL4Vector   vstore;
00641 
00642 
00643   /*
00644    *
00645    * Test ordinary behavior.
00646    *
00647    */
00648 
00649 
00650   LALSCreateVector ( &status, &vector, length );
00651   TestStatus( &status, CODES( 0 ), 1 );
00652   
00653   if (verbose)
00654     {
00655       printf("VFT line %d:\n", __LINE__);
00656       printf("  vector->length = %d\n", vector->length);
00657     }
00658   
00659   memset( vector->data, 0, length*sizeof( REAL4 ) );
00660 
00661   if (verbose)
00662     {
00663       LALSPrintVector ( vector );
00664     }
00665   
00666 
00667   /* Resize up */
00668   LALSResizeVector ( &status, &vector, length*3 );
00669   TestStatus( &status, CODES( 0 ), 1 );
00670   
00671   if (verbose)
00672     {
00673       printf("VFT line %d:\n", __LINE__);
00674       printf("  vector->length = %d\n", vector->length);
00675     }
00676 
00677 
00678   memset( vector->data, 0, length*sizeof( REAL4 ) );
00679   
00680   if (verbose)
00681     {
00682       LALSPrintVector ( vector );
00683     }
00684 
00685   /* Resize down */
00686   LALSResizeVector ( &status, &vector, length*2 );
00687   TestStatus( &status, CODES( 0 ), 1 );
00688 
00689   if (verbose)
00690     {
00691       printf("VFT line %d:\n", __LINE__);
00692       printf("  vector->length = %d\n", vector->length);
00693       LALSPrintVector ( vector );
00694     }
00695 
00696   /* Destroy */
00697   LALSDestroyVector ( &status, &vector );
00698   TestStatus( &status, CODES( 0 ), 1 );
00699   
00700   if (verbose)
00701     {
00702       printf("VFT line %d:\n", __LINE__);
00703       printf("  vector = %#x\n", (unsigned int)vector);
00704     }
00705 
00706   LALCheckMemoryLeaks();
00707   
00708   /* Check the resize function with create/destroy */
00709   LALSResizeVector ( &status, &vector, length );
00710   TestStatus( &status, CODES( 0 ), 1 );
00711 
00712   if (verbose)
00713     {
00714       printf("VFT line %d:\n", __LINE__);
00715       printf("  vector->length = %d\n", vector->length);
00716     }
00717 
00718   memset( vector->data, 0, length*sizeof( REAL4 ) );
00719 
00720   if (verbose)
00721     {
00722       LALSPrintVector ( vector );
00723     }
00724 
00725   LALSResizeVector ( &status, &vector, 0 );
00726   TestStatus( &status, CODES( 0 ), 1);
00727 
00728   if (verbose)
00729     {
00730       printf("VFT line %d:\n", __LINE__);
00731       printf("  vector = %#x\n", (unsigned int)vector);
00732     }
00733 
00734   LALCheckMemoryLeaks();
00735 
00736 
00737   /*
00738    *
00739    * Test error codes.
00740    *
00741    */
00742 
00743 #ifndef LAL_NDEBUG
00744 
00745   if ( ! lalNoDebug )
00746   {
00747     if (verbose)
00748       {
00749         printf("VFT line %d\n", __LINE__);
00750         printf("  vector = %#x\n", (unsigned int)vector);
00751       }
00752     
00753     LALSCreateVector ( &status, &vector, 0 );
00754     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00755 
00756     LALSResizeVector ( &status, &vector, 0 );
00757     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00758     
00759     LALSDestroyVector ( &status, NULL );
00760     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00761 
00762     LALSCreateVector ( &status, NULL, length );
00763     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00764 
00765     LALSDestroyVector ( &status, &vector );
00766     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00767 
00768     vector = &vstore;
00769     LALSCreateVector ( &status, &vector, length );
00770     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00771 
00772     LALSDestroyVector ( &status, &vector );
00773     TestStatus( &status, CODES( AVFACTORIESH_EDPTR ), 1 );
00774   }
00775 
00776 #else
00777   vector = &vstore;
00778 #endif
00779 
00780   LALCheckMemoryLeaks();
00781   printf( "PASS: tests of LALSCreateVector, LALSResizeVector, and LALSDestroyVector \n" );
00782           
00783   return;
00784 }
00785 
00786 
00787 
00788 /* -*- C -*- */
00789 
00790 
00791 
00792 
00793 
00794 
00795 
00796 
00797 
00798 
00799 
00800 
00801 
00802 
00803 
00804 
00805 
00806 
00807 
00808 
00809 static void I2VectorFactoriesTest ( void )
00810 {
00811   const  UINT4   length = 16;
00812   static LALStatus  status;
00813   static INT2Vector  *vector = ( INT2Vector * )NULL;
00814   static INT2Vector   vstore;
00815 
00816 
00817   /*
00818    *
00819    * Test ordinary behavior.
00820    *
00821    */
00822 
00823 
00824   LALI2CreateVector ( &status, &vector, length );
00825   TestStatus( &status, CODES( 0 ), 1 );
00826   
00827   if (verbose)
00828     {
00829       printf("VFT line %d:\n", __LINE__);
00830       printf("  vector->length = %d\n", vector->length);
00831     }
00832   
00833   memset( vector->data, 0, length*sizeof( INT2 ) );
00834 
00835   if (verbose)
00836     {
00837       LALI2PrintVector ( vector );
00838     }
00839   
00840 
00841   /* Resize up */
00842   LALI2ResizeVector ( &status, &vector, length*3 );
00843   TestStatus( &status, CODES( 0 ), 1 );
00844   
00845   if (verbose)
00846     {
00847       printf("VFT line %d:\n", __LINE__);
00848       printf("  vector->length = %d\n", vector->length);
00849     }
00850 
00851 
00852   memset( vector->data, 0, length*sizeof( INT2 ) );
00853   
00854   if (verbose)
00855     {
00856       LALI2PrintVector ( vector );
00857     }
00858 
00859   /* Resize down */
00860   LALI2ResizeVector ( &status, &vector, length*2 );
00861   TestStatus( &status, CODES( 0 ), 1 );
00862 
00863   if (verbose)
00864     {
00865       printf("VFT line %d:\n", __LINE__);
00866       printf("  vector->length = %d\n", vector->length);
00867       LALI2PrintVector ( vector );
00868     }
00869 
00870   /* Destroy */
00871   LALI2DestroyVector ( &status, &vector );
00872   TestStatus( &status, CODES( 0 ), 1 );
00873   
00874   if (verbose)
00875     {
00876       printf("VFT line %d:\n", __LINE__);
00877       printf("  vector = %#x\n", (unsigned int)vector);
00878     }
00879 
00880   LALCheckMemoryLeaks();
00881   
00882   /* Check the resize function with create/destroy */
00883   LALI2ResizeVector ( &status, &vector, length );
00884   TestStatus( &status, CODES( 0 ), 1 );
00885 
00886   if (verbose)
00887     {
00888       printf("VFT line %d:\n", __LINE__);
00889       printf("  vector->length = %d\n", vector->length);
00890     }
00891 
00892   memset( vector->data, 0, length*sizeof( INT2 ) );
00893 
00894   if (verbose)
00895     {
00896       LALI2PrintVector ( vector );
00897     }
00898 
00899   LALI2ResizeVector ( &status, &vector, 0 );
00900   TestStatus( &status, CODES( 0 ), 1);
00901 
00902   if (verbose)
00903     {
00904       printf("VFT line %d:\n", __LINE__);
00905       printf("  vector = %#x\n", (unsigned int)vector);
00906     }
00907 
00908   LALCheckMemoryLeaks();
00909 
00910 
00911   /*
00912    *
00913    * Test error codes.
00914    *
00915    */
00916 
00917 #ifndef LAL_NDEBUG
00918 
00919   if ( ! lalNoDebug )
00920   {
00921     if (verbose)
00922       {
00923         printf("VFT line %d\n", __LINE__);
00924         printf("  vector = %#x\n", (unsigned int)vector);
00925       }
00926     
00927     LALI2CreateVector ( &status, &vector, 0 );
00928     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00929 
00930     LALI2ResizeVector ( &status, &vector, 0 );
00931     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
00932     
00933     LALI2DestroyVector ( &status, NULL );
00934     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00935 
00936     LALI2CreateVector ( &status, NULL, length );
00937     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
00938 
00939     LALI2DestroyVector ( &status, &vector );
00940     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00941 
00942     vector = &vstore;
00943     LALI2CreateVector ( &status, &vector, length );
00944     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
00945 
00946     LALI2DestroyVector ( &status, &vector );
00947     TestStatus( &status, CODES( AVFACTORIESH_EDPTR ), 1 );
00948   }
00949 
00950 #else
00951   vector = &vstore;
00952 #endif
00953 
00954   LALCheckMemoryLeaks();
00955   printf( "PASS: tests of LALI2CreateVector, LALI2ResizeVector, and LALI2DestroyVector \n" );
00956           
00957   return;
00958 }
00959 
00960 
00961 
00962 /* -*- C -*- */
00963 
00964 
00965 
00966 
00967 
00968 
00969 
00970 
00971 
00972 
00973 
00974 
00975 
00976 
00977 
00978 
00979 
00980 
00981 
00982 
00983 static void I4VectorFactoriesTest ( void )
00984 {
00985   const  UINT4   length = 16;
00986   static LALStatus  status;
00987   static INT4Vector  *vector = ( INT4Vector * )NULL;
00988   static INT4Vector   vstore;
00989 
00990 
00991   /*
00992    *
00993    * Test ordinary behavior.
00994    *
00995    */
00996 
00997 
00998   LALI4CreateVector ( &status, &vector, length );
00999   TestStatus( &status, CODES( 0 ), 1 );
01000   
01001   if (verbose)
01002     {
01003       printf("VFT line %d:\n", __LINE__);
01004       printf("  vector->length = %d\n", vector->length);
01005     }
01006   
01007   memset( vector->data, 0, length*sizeof( INT4 ) );
01008 
01009   if (verbose)
01010     {
01011       LALI4PrintVector ( vector );
01012     }
01013   
01014 
01015   /* Resize up */
01016   LALI4ResizeVector ( &status, &vector, length*3 );
01017   TestStatus( &status, CODES( 0 ), 1 );
01018   
01019   if (verbose)
01020     {
01021       printf("VFT line %d:\n", __LINE__);
01022       printf("  vector->length = %d\n", vector->length);
01023     }
01024 
01025 
01026   memset( vector->data, 0, length*sizeof( INT4 ) );
01027   
01028   if (verbose)
01029     {
01030       LALI4PrintVector ( vector );
01031     }
01032 
01033   /* Resize down */
01034   LALI4ResizeVector ( &status, &vector, length*2 );
01035   TestStatus( &status, CODES( 0 ), 1 );
01036 
01037   if (verbose)
01038     {
01039       printf("VFT line %d:\n", __LINE__);
01040       printf("  vector->length = %d\n", vector->length);
01041       LALI4PrintVector ( vector );
01042     }
01043 
01044   /* Destroy */
01045   LALI4DestroyVector ( &status, &vector );
01046   TestStatus( &status, CODES( 0 ), 1 );
01047   
01048   if (verbose)
01049     {
01050       printf("VFT line %d:\n", __LINE__);
01051       printf("  vector = %#x\n", (unsigned int)vector);
01052     }
01053 
01054   LALCheckMemoryLeaks();
01055   
01056   /* Check the resize function with create/destroy */
01057   LALI4ResizeVector ( &status, &vector, length );
01058   TestStatus( &status, CODES( 0 ), 1 );
01059 
01060   if (verbose)
01061     {
01062       printf("VFT line %d:\n", __LINE__);
01063       printf("  vector->length = %d\n", vector->length);
01064     }
01065 
01066   memset( vector->data, 0, length*sizeof( INT4 ) );
01067 
01068   if (verbose)
01069     {
01070       LALI4PrintVector ( vector );
01071     }
01072 
01073   LALI4ResizeVector ( &status, &vector, 0 );
01074   TestStatus( &status, CODES( 0 ), 1);
01075 
01076   if (verbose)
01077     {
01078       printf("VFT line %d:\n", __LINE__);
01079       printf("  vector = %#x\n", (unsigned int)vector);
01080     }
01081 
01082   LALCheckMemoryLeaks();
01083 
01084 
01085   /*
01086    *
01087    * Test error codes.
01088    *
01089    */
01090 
01091 #ifndef LAL_NDEBUG
01092 
01093   if ( ! lalNoDebug )
01094   {
01095     if (verbose)
01096       {
01097         printf("VFT line %d\n", __LINE__);
01098         printf("  vector = %#x\n", (unsigned int)vector);
01099       }
01100     
01101     LALI4CreateVector ( &status, &vector, 0 );
01102     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
01103 
01104     LALI4ResizeVector ( &status, &vector, 0 );
01105     TestStatus( &status, CODES( AVFACTORIESH_ELENGTH ), 1 );
01106     
01107     LALI4DestroyVector ( &status, NULL );
01108     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
01109 
01110     LALI4CreateVector ( &status, NULL, length );
01111     TestStatus( &status, CODES( AVFACTORIESH_EVPTR ), 1 );
01112 
01113     LALI4DestroyVector ( &status, &vector );
01114     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
01115 
01116     vector = &vstore;
01117     LALI4CreateVector ( &status, &vector, length );
01118     TestStatus( &status, CODES( AVFACTORIESH_EUPTR ), 1 );
01119 
01120     LALI4DestroyVector ( &status, &vector );
01121     TestStatus( &status, CODES( AVFACTORIESH_EDPTR ), 1 );
01122   }
01123 
01124 #else
01125   vector = &vstore;
01126 #endif
01127 
01128   LALCheckMemoryLeaks();
01129   printf( "PASS: tests of LALI4CreateVector, LALI4ResizeVector, and LALI4DestroyVector \n" );
01130           
01131   return;
01132 }
01133 
01134 
01135 
01136 /* -*- C -*- */
01137 
01138 
01139 
01140 
01141 
01142 
01143 
01144 
01145 
01146 
01147 
01148 
01149 
01150 
01151 
01152 
01153 
01154 
01155 
01156 
01157 static void I8VectorFactoriesTest ( void )
01158 {
01159   const  UINT4   length = 16;
01160   static LALStatus  status;
01161   static INT8Vector  *vector = ( INT8Vector * )NULL;
01162   static INT8Vector   vstore;
01163 
01164 
01165   /*
01166    *
01167    * Test ordinary behavior.
01168    *
01169    */
01170 
01171 
01172   LALI8CreateVector ( &status, &vector, length );
01173   TestStatus( &status, CODES( 0 ), 1 );
01174   
01175   if (verbose)
01176     {
01177       printf("VFT line %d:\n", __LINE__);
01178       printf("  vector->length = %d\n", vector->length);
01179     }
01180   
01181   memset( vector->data, 0, length*sizeof( INT8 ) );
01182 
01183   if (verbose)
01184     {
01185       LALI8PrintVector ( vector );
01186     }
01187   
01188 
01189   /* Resize up */
01190   LALI8ResizeVector ( &status, &vector, length*3 );
01191   TestStatus( &status, CODES( 0 ), 1 );
01192   
01193   if (verbose)
01194     {
01195       printf("VFT line %d:\n", __LINE__);
01196       printf("  vector->length = %d\n", vector->length);
01197     }
01198 
01199 
01200   memset( vector->data, 0, length*sizeof( INT8 ) );
01201   
01202   if (verbose)
01203     {
01204       LALI8PrintVector ( vector );
01205     }
01206 
01207   /* Resize down */
01208   LALI8ResizeVector ( &status, &vector, length*2 );
01209   TestStatus( &sta