NMD
u3.c
Go to the documentation of this file.
00001 #include <stdlib.h>
00002 #include "nmd.h"
00003 
00004 /*! Test removal of a category */
00005 int main(int argc,char **argv) {
00006   NMD_metadata nmd; NMDErrorCode ierr;
00007   PetscFunctionBegin;
00008   PetscInitialize(&argc,&argv,0,0);
00009   ierr = NMDCreateObject(&nmd); NMD_ERR_RETURN(ierr);
00010 
00011   {
00012     NMD_metadata_category cat; char **cats; NMDTruth flg; int ncat;
00013 
00014     ierr = NMDObjectAllocateNewCategory
00015       (nmd,"cat1",NULL); NMD_ERR_RETURN(ierr);
00016 
00017     ierr = NMDObjectAllocateNewCategory
00018       (nmd,"cat2",&cat); NMD_ERR_RETURN(ierr);
00019 
00020     ierr = NMDObjectAllocateNewCategory
00021       (nmd,"catthree",&cat); NMD_ERR_RETURN(ierr);
00022 
00023     ierr = NMDRemoveCategory(nmd,"cat2"); NMD_ERR_RETURN(ierr);
00024 
00025     ierr = NMDObjectTryGetCategory
00026       (nmd,"cat2",NULL,&flg); NMD_ERR_RETURN(ierr);
00027     if (flg) NMD_ERR_REPORT("category was supposed to be removed");
00028 
00029     ierr = NMDGetCategories(nmd,&ncat,NULL); NMD_ERR_RETURN(ierr);
00030     if (ncat!=3) NMD_ERR_REPORTi("incorrect number of categories",ncat);
00031     ierr = NMDGetCategories(nmd,&ncat,&cats); NMD_ERR_RETURN(ierr);
00032     NMD_FREE(cats);
00033   }
00034 
00035   ierr = NMDDestroyObject(nmd); NMD_ERR_RETURN(ierr);
00036   PetscFinalize();
00037   PetscFunctionReturn(0);
00038 }