?? mf_timemgrex.c
字號:
/*============================================================================* * MF_TimeMgr C Unit Tests and Examples *============================================================================*/#undef __FUNC__#define __FUNC__ "MF_TimeMgrExC"#include "MF.h"#include "MF_TimeMgr.h"#define START_DATE 20011128#define START_SECS 43200#define STOP_DATE 20031201#define STOP_SECS 1200#define STEP_DAYS 1#define STEP_SECS 43200#define NUM_ITS 5int main(int argc, char **argv){ int i; MF_Time stepSize; MF_TimeMgr timeMgr, timeMgr_Reconstructed; MF_Date startDate, stopDate, baseDate; MF_Date currDate, prevDate; int retDate, retSecs; MF_CalendarType calType; int nstep, stepDays, stepSec, startYYMMDD, startSec, stopYYMMDD, stopSec, baseYYMMDD, baseSec, currYYMMDD, currSec; MF_CalendarType calType1; int nstep1, stepDays1, stepSec1, startYYMMDD1, startSec1, stopYYMMDD1, stopSec1, baseYYMMDD1, baseSec1, currYYMMDD1, currSec1; int test; printf("==================================================\n"); printf("MF_TimeMgr C Unit Tests and Examples\n"); printf("==================================================\n"); stepSize = MF_TimeNewIS(STEP_DAYS, STEP_SECS); startDate = MF_DateNewIS(MF_GREGORIAN, START_DATE, START_SECS); stopDate = MF_DateNewIS(MF_GREGORIAN, STOP_DATE, STOP_SECS); baseDate = MF_DateNewIS(MF_GREGORIAN, START_DATE, START_SECS); currDate = MF_DateNewIS(MF_GREGORIAN, MF_TIME_UNDEFINED, MF_TIME_UNDEFINED); prevDate = MF_DateNewIS(MF_GREGORIAN, MF_TIME_UNDEFINED, MF_TIME_UNDEFINED); timeMgr = MF_TimeMgrNew(stepSize, startDate, stopDate, baseDate); for(i=0; i<NUM_ITS; i++){ MF_TimeMgrAdvance(timeMgr); } MF_TimeMgrGetCurrDate(timeMgr, currDate); MF_DateGetIS(currDate, &retDate, &retSecs); printf("Ret date = %d, Ret secs = %d\n", retDate, retSecs); MF_ERROR_TEST(((retDate==20011206) && (retSecs==0)), "MF_TimeMgrAdvance: advance a time manager by several timesteps"); MF_TimeMgrSetCurrDateIS(timeMgr, START_DATE, START_SECS); MF_TimeMgrAdvance(timeMgr); MF_TimeMgrGetPrevDate(timeMgr, prevDate); MF_DateGetIS(prevDate, &retDate, &retSecs); MF_ERROR_TEST(((retDate == START_DATE) && (retSecs == START_SECS)), "MF_TimeMgrSetCurrDate: set current date (make sure prev date ok)"); MF_TimeMgrRestartWriteIS(timeMgr, &calType, &nstep, &stepDays, &stepSec, &startYYMMDD, &startSec, &stopYYMMDD, &stopSec, &baseYYMMDD, &baseSec, &currYYMMDD, &currSec ); timeMgr_Reconstructed = MF_TimeMgrNewRestartReadIS(calType, nstep, stepDays, stepSec, startYYMMDD, startSec, stopYYMMDD, stopSec, baseYYMMDD, baseSec, currYYMMDD, currSec ); MF_TimeMgrRestartWriteIS(timeMgr_Reconstructed, &calType1, &nstep1, &stepDays1, &stepSec1, &startYYMMDD1, &startSec1, &stopYYMMDD1, &stopSec1, &baseYYMMDD1, &baseSec1, &currYYMMDD1, &currSec1 ); test = (calType==calType1) && (nstep==nstep1) && (stepDays==stepDays1) && (stepSec==stepSec1) && (startYYMMDD==startYYMMDD1) && (stopYYMMDD==stopYYMMDD1) && (baseYYMMDD==baseYYMMDD1) && (currYYMMDD==currYYMMDD1); MF_ERROR_TEST(test, "MF_TimeMgrRestartReadIS, MF_TimeMgrRestartWriteIS: write then read to get same"); MF_TimeMgrDelete(timeMgr_Reconstructed); MF_TimeDelete(stepSize); MF_DateDelete(startDate); MF_DateDelete(stopDate); MF_DateDelete(baseDate); MF_DateDelete(currDate); MF_TimeMgrDelete(timeMgr); return(MF_SUCCESS);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -