int main(void){ char name[80]; char failMsg[80]; int result = 0; int rc; ESMC_ArraySpec arrayspec; int *minIndexValues, *maxIndexValues; ESMC_InterfaceInt minIndex, maxIndex; ESMC_DistGrid distgrid; ESMC_Array array; //---------------------------------------------------------------------------- ESMC_TestStart(__FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest // Set the arrayspec strcpy(name, "ArraySpecSet"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_ArraySpecSet(&arrayspec, 2, ESMC_TYPEKIND_I4); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Set up minIndex"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); minIndexValues = (int *)malloc(2*sizeof(int)); minIndexValues[0] = minIndexValues[1] = 1; minIndex = ESMC_InterfaceIntCreate(minIndexValues, 2, &rc); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Set up maxIndex"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); maxIndexValues = (int *)malloc(2*sizeof(int)); maxIndexValues[0] = 5; maxIndexValues[1] = 10; maxIndex = ESMC_InterfaceIntCreate(maxIndexValues, 2, &rc); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Create 5 x 10 ESMC_DistGrid object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); distgrid = ESMC_DistGridCreate(minIndex, maxIndex, &rc); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Clean up minIndex"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); free(minIndexValues); rc = ESMC_InterfaceIntDestroy(&minIndex); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Clean up maxIndex"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); free(maxIndexValues); rc = ESMC_InterfaceIntDestroy(&maxIndex); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Create ESMC_Array object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); array = ESMC_ArrayCreate(arrayspec, distgrid, "array1", &rc); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Print ESMC_Array object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_ArrayPrint(array); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Destroy ESMC_DistGrid object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_DistGridDestroy(&distgrid); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Destroy ESMC_Array object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_ArrayDestroy(&array); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- ESMC_TestEnd(result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- return 0; }
int main(void){ ESMC_State myState; // ESMC_State object const char* arrayName; char name[80]; char failMsg[80]; int result = 0; int rc = 0; int localrc; ESMC_ArraySpec arrayspec; int *minIndexValues, *maxIndexValues; ESMC_InterfaceInt minIndex, maxIndex; ESMC_DistGrid distgrid; ESMC_Array array; ESMC_Array retrievedArray; //---------------------------------------------------------------------------- ESMC_TestStart(__FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest // Create a state object -- cf strcpy(name, "StateCreate Unit test"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); myState = ESMC_StateCreate("stateName",&rc); ESMC_Test((rc == ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__,0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest // Set the arrayspec strcpy(name, "ArraySpecSet"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_ArraySpecSet(&arrayspec, 2, ESMC_TYPEKIND_I4); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Set up minIndex"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); minIndexValues = (int *)malloc(2*sizeof(int)); minIndexValues[0] = minIndexValues[1] = 1; minIndex = ESMC_InterfaceIntCreate(minIndexValues, 2, &rc); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Set up maxIndex"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); maxIndexValues = (int *)malloc(2*sizeof(int)); maxIndexValues[0] = 5; maxIndexValues[1] = 10; maxIndex = ESMC_InterfaceIntCreate(maxIndexValues, 2, &rc); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Create 5 x 10 ESMC_DistGrid object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); distgrid = ESMC_DistGridCreate(minIndex, maxIndex, &rc); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Clean up minIndex"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); free(minIndexValues); rc = ESMC_InterfaceIntDestroy(&minIndex); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Clean up maxIndex"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); free(maxIndexValues); rc = ESMC_InterfaceIntDestroy(&maxIndex); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Create ESMC_Array object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); array = ESMC_ArrayCreate(arrayspec, distgrid, "array1", &rc); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Retrieve the name of an ESMC_Array object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); arrayName = ESMC_ArrayGetName(array,&rc); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Verify array object name retrieved"); strcpy(failMsg, "Did not retrieve array name correctly"); ESMC_Test(!strcmp(arrayName, "array1"), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Print ESMC_Array object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_ArrayPrint(array); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Add an Array to a State object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_StateAddArray(myState,array); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Get an array from a state, based on its name"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_StateGetArray(myState, "array1", &retrievedArray); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Compare array stored into and array retrieved from a state"); strcpy(failMsg, "Discrepancy on array pointers"); ESMC_Test((array.ptr==retrievedArray.ptr), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Destroy ESMC_DistGrid object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_DistGridDestroy(&distgrid); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest strcpy(name, "Destroy ESMC_Array object"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_ArrayDestroy(&array); ESMC_Test((rc==ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //NEX_UTest // Destroy a state object -- cf strcpy(name, "StateDestroy Unit test"); strcpy(failMsg, "Did not return ESMF_SUCCESS"); rc = ESMC_StateDestroy(&myState); ESMC_Test((rc == ESMF_SUCCESS), name, failMsg, &result, __FILE__, __LINE__,0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- ESMC_TestEnd(result, __FILE__, __LINE__, 0); //---------------------------------------------------------------------------- return 0; }