NMD
Functions
u12.c File Reference
#include <stdlib.h>
#include "memory.h"
#include "nmd.h"
Include dependency graph for u12.c:

Go to the source code of this file.

Functions

int main (int argc, char **argv)

Function Documentation

int main ( int  argc,
char **  argv 
)

Stress test

Definition at line 6 of file u12.c.

References NMDCreateObject(), NMDDestroyObject(), NMDGetValue(), NMDInt, and NMDSetValue().

                               {
  NMD_metadata nmd; NMDErrorCode ierr; 
  int i;
  PetscFunctionBegin;
  PetscInitialize(&argc,&argv,0,0);

  ierr = NMDCreateObject(&nmd); NMD_ERR_RETURN(ierr);

  /*
   * Test relocation of categories
   */
  for (i=0; i<999; i++) {
    char catname[20];
    memset(catname,0,20);
    sprintf(catname,"cat%d",i);
    ierr = NMDSetValue(nmd,catname,"cmp",NMDInt,&i); NMD_ERR_RETURN(ierr);
  }
  for (i=0; i<999; i++) {
    char catname[20]; int ii; NMDTruth flg;
    memset(catname,0,20);
    sprintf(catname,"cat%d",i);
    ierr = NMDGetValue
      (nmd,catname,"cmp",NULL,(void*)&ii,&flg); NMD_ERR_RETURN(ierr);
    if (!flg)
      NMD_ERR_REPORTi("Could not get value at",i);
    if (i!=ii)
      NMD_ERR_REPORTi("Value mismatch at",i);
  }

  /*
   * Test relocation of components
   */
  for (i=0; i<999; i++) {
    char cmpname[20];
    memset(cmpname,0,20);
    sprintf(cmpname,"cmp%d",i);
    ierr = NMDSetValue(nmd,"testcmp",cmpname,NMDInt,&i); NMD_ERR_RETURN(ierr);
  }
  for (i=0; i<999; i++) {
    char cmpname[20]; int ii; NMDTruth flg;
    memset(cmpname,0,20);
    sprintf(cmpname,"cmp%d",i);
    ierr = NMDGetValue
      (nmd,"testcmp",cmpname,NULL,(void*)&ii,&flg); NMD_ERR_RETURN(ierr);
    if (!flg)
      NMD_ERR_REPORTi("Could not get value at",i);
    if (i!=ii)
      NMD_ERR_REPORTi("Value mismatch at",i);
  }

  ierr = NMDDestroyObject(nmd); NMD_ERR_RETURN(ierr);

  PetscFinalize();
  PetscFunctionReturn(0);
}

Here is the call graph for this function: