static int testTAFunction_ALL( TA_History *history ) { ErrorNumber retValue; printf( "Testing the TA functions\n" ); initGlobalBuffer(); /* Just validate that the history is not too big for the * global temporary buffers used troughout the testing. */ if( history->nbBars >= MAX_NB_TEST_ELEMENT ) { printf( "Buffer too small to proceed with tests [%d >= %d]\n", history->nbBars, MAX_NB_TEST_ELEMENT ); return -1; } /* Make tests for each TA functions. */ #define DO_TEST(func,str) \ { \ printf( "%30s: Testing....", str ); \ fflush(stdout); \ showFeedback(); \ TA_SetCompatibility( TA_COMPATIBILITY_DEFAULT ); \ retValue = func( history ); \ if( retValue != TA_TEST_PASS ) \ return retValue; \ hideFeedback(); \ printf( "done.\n" ); \ fflush(stdout); \ } DO_TEST( test_func_adx, "ADX,ADXR,DI,DM,DX" ); DO_TEST( test_func_sar, "Parabolic SAR" ); DO_TEST( test_candlestick, "Candlesticks" ); DO_TEST( test_func_ma, "All Moving Averages" ); DO_TEST( test_func_stoch, "STOCH,STOCHF,STOCHRSI" ); DO_TEST( test_func_per_hl, "AROON,CORREL" ); DO_TEST( test_func_rsi, "RSI" ); DO_TEST( test_func_per_hlc, "CCI,WILLR" ); DO_TEST( test_func_per_hlcv, "MFI,AD,ADOSC" ); DO_TEST( test_func_1in_1out, "Function Group 1-1" ); DO_TEST( test_func_1in_2out, "Function Group 1-2" ); DO_TEST( test_func_per_ema, "TRIX" ); DO_TEST( test_func_minmax, "MIN,MAX" ); DO_TEST( test_func_macd, "MACD,MACDFIX,MACDEXT" ); DO_TEST( test_func_mom_roc, "MOM,ROC,ROCP,ROCR,ROCR100" ); DO_TEST( test_func_trange, "TRANGE,ATR" ); DO_TEST( test_func_po, "PO,APO" ); DO_TEST( test_func_stddev, "STDDEV,VAR" ); DO_TEST( test_func_bbands, "BBANDS" ); return TA_TEST_PASS; /* All test succeed. */ }
static ErrorNumber testTAFunction_ALL( void ) { ErrorNumber retValue; TA_History history; history.nbBars = 252; history.open = TA_SREF_open_daily_ref_0_PRIV; history.high = TA_SREF_high_daily_ref_0_PRIV; history.low = TA_SREF_low_daily_ref_0_PRIV; history.close = TA_SREF_close_daily_ref_0_PRIV; history.volume = TA_SREF_volume_daily_ref_0_PRIV; printf( "Testing the TA functions\n" ); initGlobalBuffer(); /* Make tests for each TA functions. */ #define DO_TEST(func,str) \ { \ printf( "%50s: Testing....", str ); \ fflush(stdout); \ showFeedback(); \ TA_SetCompatibility( TA_COMPATIBILITY_DEFAULT ); \ retValue = func( &history ); \ if( retValue != TA_TEST_PASS ) \ return retValue; \ hideFeedback(); \ printf( "done.\n" ); \ fflush(stdout); \ } DO_TEST( test_func_1in_1out, "MATH,VECTOR,DCPERIOD/PHASE,TRENDLINE/MODE" ); DO_TEST( test_func_ma, "All Moving Averages" ); DO_TEST( test_func_per_hl, "AROON,CORREL,BETA" ); DO_TEST( test_func_per_hlc, "CCI,WILLR,ULTOSC,NATR" ); DO_TEST( test_func_per_ohlc, "BOP,AVGPRICE" ); DO_TEST( test_func_rsi, "RSI,CMO" ); DO_TEST( test_func_minmax, "MIN,MAX,MININDEX,MAXINDEX,MINMAX,MINMAXINDEX" ); DO_TEST( test_func_po, "PO,APO" ); DO_TEST( test_func_adx, "ADX,ADXR,DI,DM,DX" ); DO_TEST( test_func_sar, "SAR,SAREXT" ); DO_TEST( test_func_stoch, "STOCH,STOCHF,STOCHRSI" ); DO_TEST( test_func_per_hlcv, "MFI,AD,ADOSC" ); DO_TEST( test_func_1in_2out, "PHASOR,SINE" ); DO_TEST( test_func_per_ema, "TRIX" ); DO_TEST( test_func_macd, "MACD,MACDFIX,MACDEXT" ); DO_TEST( test_func_mom_roc, "MOM,ROC,ROCP,ROCR,ROCR100" ); DO_TEST( test_func_trange, "TRANGE,ATR" ); DO_TEST( test_func_stddev, "STDDEV,VAR" ); DO_TEST( test_func_bbands, "BBANDS" ); DO_TEST( test_candlestick, "All Candlesticks" ); return TA_TEST_PASS; /* All tests succeeded. */ }