00001 #include <stdlib.h>
00002 #include "nmd.h"
00003
00004
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; NMDTruth flg;
00013
00014 ierr = NMDObjectAllocateNewCategory
00015 (nmd,"catone",NULL); NMD_ERR_RETURN(ierr);
00016
00017 ierr = NMDObjectAllocateNewCategory
00018 (nmd,"cat2",&cat); NMD_ERR_RETURN(ierr);
00019
00020 ierr = NMDCategoryAllocateNewComponent
00021 (cat,"p1",NMDInt,NULL); NMD_ERR_RETURN(ierr);
00022 ierr = NMDCategoryAllocateNewComponent
00023 (cat,"ptwo",NMDReal,NULL); NMD_ERR_RETURN(ierr);
00024 ierr = NMDCategoryAllocateNewComponent
00025 (cat,"p3",NMDIntarray,NULL); NMD_ERR_RETURN(ierr);
00026
00027 ierr = NMDObjectTryGetCategory
00028 (nmd,"catone",&cat,&flg); NMD_ERR_RETURN(ierr);
00029 if (!flg) NMD_ERR_REPORT("category 1 missing")
00030
00031 ierr = NMDCategoryAllocateNewComponent
00032 (cat,"pone",NMDString,NULL); NMD_ERR_RETURN(ierr);
00033 ierr = NMDCategoryAllocateNewComponent
00034 (cat,"ptwo",NMDRealarray,NULL); NMD_ERR_RETURN(ierr);
00035
00036
00037 ierr = NMDCategoryTryGetComponent
00038 (cat,"pone",NULL,&flg); NMD_ERR_RETURN(ierr);
00039 if (!flg) NMD_ERR_REPORT("Did not find pone component");
00040 ierr = NMDCategoryTryGetComponent
00041 (cat,"ptwo",NULL,&flg); NMD_ERR_RETURN(ierr);
00042 if (!flg) NMD_ERR_REPORT("Did not find ptwo component");
00043 ierr = NMDCategoryTryGetComponent
00044 (cat,"pthree",NULL,&flg); NMD_ERR_RETURN(ierr);
00045 if (flg) NMD_ERR_REPORT("Found non-existing component");
00046 ierr = NMDObjectHasCategoryComponent
00047 (nmd,"catone","p1",&flg); NMD_ERR_RETURN(ierr);
00048 if (flg) NMD_ERR_REPORT("found component in wrong category");
00049 }
00050
00051 ierr = NMDDestroyObject(nmd); NMD_ERR_RETURN(ierr);
00052 PetscFinalize();
00053 PetscFunctionReturn(0);
00054 }