365 lines
18 KiB
MQL5
365 lines
18 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| TestInterfaces.mq5 |
|
|
//| Copyright 2003-2022 Sergey Bochkanov (ALGLIB project) |
|
|
//| Copyright 2012-2023, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
//| Implementation of ALGLIB library in MetaQuotes Language 5 |
|
|
//| |
|
|
//| The features of the library include: |
|
|
//| - Linear algebra (direct algorithms, EVD, SVD) |
|
|
//| - Solving systems of linear and non-linear equations |
|
|
//| - Interpolation |
|
|
//| - Optimization |
|
|
//| - FFT (Fast Fourier Transform) |
|
|
//| - Numerical integration |
|
|
//| - Linear and nonlinear least-squares fitting |
|
|
//| - Ordinary differential equations |
|
|
//| - Computation of special functions |
|
|
//| - Descriptive statistics and hypothesis testing |
|
|
//| - Data analysis - classification, regression |
|
|
//| - Implementing linear algebra algorithms, interpolation, etc. |
|
|
//| in high-precision arithmetic (using MPFR) |
|
|
//| |
|
|
//| This program is free software; you can redistribute it and/or |
|
|
//| modify it under the terms of the GNU General Public License as |
|
|
//| published by the Free Software Foundation (www.fsf.org); either |
|
|
//| version 2 of the License, or (at your option) any later version. |
|
|
//| |
|
|
//| This program is distributed in the hope that it will be useful, |
|
|
//| but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
//| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
//| GNU General Public License for more details. |
|
|
//+------------------------------------------------------------------+
|
|
#include "TestInterfaces.mqh"
|
|
|
|
#define CHECK_RESULT if(!_TestResult) PrintFormat("Test %d failed",test); test++;
|
|
//+------------------------------------------------------------------+
|
|
//| Testing script |
|
|
//+------------------------------------------------------------------+
|
|
void OnStart()
|
|
{
|
|
//--- total result
|
|
bool _TotalResult=true;
|
|
//--- test result
|
|
bool _TestResult;
|
|
int test=1;
|
|
//--- spoil scenario
|
|
int _spoil_scenario;
|
|
Print("MQL5 interface tests. Please wait...");
|
|
Print("0/152");
|
|
//--- testing
|
|
TEST_Ablas_D_Gemm(_spoil_scenario,_TestResult,_TotalResult); //1
|
|
CHECK_RESULT
|
|
TEST_Ablas_D_Syrk(_spoil_scenario,_TestResult,_TotalResult); //2
|
|
CHECK_RESULT
|
|
TEST_Ablas_T_Complex(_spoil_scenario,_TestResult,_TotalResult); //3
|
|
CHECK_RESULT
|
|
TEST_Sparse_D_1(_spoil_scenario,_TestResult,_TotalResult); //4
|
|
CHECK_RESULT
|
|
TEST_Sparse_D_CRS(_spoil_scenario,_TestResult,_TotalResult); //5
|
|
CHECK_RESULT
|
|
TEST_SolveSKS_D_1(_spoil_scenario,_TestResult,_TotalResult); //6
|
|
CHECK_RESULT
|
|
TEST_LinCG_D_1(_spoil_scenario,_TestResult,_TotalResult); //7
|
|
CHECK_RESULT
|
|
TEST_LinLSQR_D_1(_spoil_scenario,_TestResult,_TotalResult); //8
|
|
CHECK_RESULT
|
|
TEST_NNeighbor_D_1(_spoil_scenario,_TestResult,_TotalResult); //9
|
|
CHECK_RESULT
|
|
TEST_NNeighbor_T_2(_spoil_scenario,_TestResult,_TotalResult); //10
|
|
CHECK_RESULT
|
|
TEST_NNeighbor_D_2(_spoil_scenario,_TestResult,_TotalResult); //11
|
|
CHECK_RESULT
|
|
TEST_BaseStat_D_Base(_spoil_scenario,_TestResult,_TotalResult); //12
|
|
CHECK_RESULT
|
|
TEST_BaseStat_D_C2(_spoil_scenario,_TestResult,_TotalResult); //13
|
|
CHECK_RESULT
|
|
TEST_BaseStat_D_CM(_spoil_scenario,_TestResult,_TotalResult); //14
|
|
CHECK_RESULT
|
|
TEST_BaseStat_D_CM2(_spoil_scenario,_TestResult,_TotalResult); //15
|
|
CHECK_RESULT
|
|
TEST_BaseStat_T_Base(_spoil_scenario,_TestResult,_TotalResult); //16
|
|
CHECK_RESULT
|
|
TEST_BaseStat_T_CovCorr(_spoil_scenario,_TestResult,_TotalResult); //17
|
|
CHECK_RESULT
|
|
TEST_MatInv_D_R1(_spoil_scenario,_TestResult,_TotalResult); //18
|
|
CHECK_RESULT
|
|
TEST_MatInv_D_C1(_spoil_scenario,_TestResult,_TotalResult); //19
|
|
CHECK_RESULT
|
|
TEST_MatInv_D_SPD1(_spoil_scenario,_TestResult,_TotalResult); //20
|
|
CHECK_RESULT
|
|
TEST_MatInv_D_HPD1(_spoil_scenario,_TestResult,_TotalResult); //21
|
|
CHECK_RESULT
|
|
TEST_MatInv_T_R1(_spoil_scenario,_TestResult,_TotalResult); //22
|
|
CHECK_RESULT
|
|
TEST_MatInv_T_C1(_spoil_scenario,_TestResult,_TotalResult); //23
|
|
CHECK_RESULT
|
|
TEST_MatInv_E_SPD1(_spoil_scenario,_TestResult,_TotalResult); //24
|
|
CHECK_RESULT
|
|
TEST_MatInv_E_HPD1(_spoil_scenario,_TestResult,_TotalResult); //25
|
|
CHECK_RESULT
|
|
TEST_MinCG_D_1(_spoil_scenario,_TestResult,_TotalResult); //26
|
|
CHECK_RESULT
|
|
TEST_MinCG_D_2(_spoil_scenario,_TestResult,_TotalResult); //27
|
|
CHECK_RESULT
|
|
TEST_MinCG_NumDiff(_spoil_scenario,_TestResult,_TotalResult); //28
|
|
CHECK_RESULT
|
|
TEST_MinCG_FTRIM(_spoil_scenario,_TestResult,_TotalResult); //29
|
|
CHECK_RESULT
|
|
TEST_MinBLEIC_D_1(_spoil_scenario,_TestResult,_TotalResult); //30
|
|
CHECK_RESULT
|
|
TEST_MinBLEIC_D_2(_spoil_scenario,_TestResult,_TotalResult); //31
|
|
CHECK_RESULT
|
|
TEST_MinBLEIC_NumDiff(_spoil_scenario,_TestResult,_TotalResult); //32
|
|
CHECK_RESULT
|
|
TEST_MinBLEIC_FTRIM(_spoil_scenario,_TestResult,_TotalResult); //33
|
|
CHECK_RESULT
|
|
TEST_MCPD_Simple1(_spoil_scenario,_TestResult,_TotalResult); //34
|
|
CHECK_RESULT
|
|
TEST_MCPD_Simple2(_spoil_scenario,_TestResult,_TotalResult); //35
|
|
CHECK_RESULT
|
|
TEST_MinLBFGS_D_1(_spoil_scenario,_TestResult,_TotalResult); //36
|
|
CHECK_RESULT
|
|
TEST_MinLBFGS_D_2(_spoil_scenario,_TestResult,_TotalResult); //37
|
|
CHECK_RESULT
|
|
TEST_MinLBFGS_NumDiff(_spoil_scenario,_TestResult,_TotalResult); //38
|
|
CHECK_RESULT
|
|
TEST_MinLBFGS_FTRIM(_spoil_scenario,_TestResult,_TotalResult); //39
|
|
CHECK_RESULT
|
|
TEST_ODESolver_D1(_spoil_scenario,_TestResult,_TotalResult); //40
|
|
CHECK_RESULT
|
|
TEST_FFT_Complex_D1(_spoil_scenario,_TestResult,_TotalResult); //41
|
|
CHECK_RESULT
|
|
TEST_FFT_Complex_D2(_spoil_scenario,_TestResult,_TotalResult); //42
|
|
CHECK_RESULT
|
|
TEST_FFT_Real_D1(_spoil_scenario,_TestResult,_TotalResult); //43
|
|
CHECK_RESULT
|
|
TEST_FFT_Real_D2(_spoil_scenario,_TestResult,_TotalResult); //44
|
|
CHECK_RESULT
|
|
TEST_FFT_Complex_E1(_spoil_scenario,_TestResult,_TotalResult); //45
|
|
CHECK_RESULT
|
|
TEST_AutoGK_D1(_spoil_scenario,_TestResult,_TotalResult); //46
|
|
CHECK_RESULT
|
|
TEST_PolInt_D_CalcDiff(_spoil_scenario,_TestResult,_TotalResult); //47
|
|
CHECK_RESULT
|
|
TEST_PolInt_D_Conv(_spoil_scenario,_TestResult,_TotalResult); //48
|
|
CHECK_RESULT
|
|
TEST_PolInt_D_Spec(_spoil_scenario,_TestResult,_TotalResult); //49
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_1(_spoil_scenario,_TestResult,_TotalResult); //50
|
|
CHECK_RESULT
|
|
//--- 50 blocks were successful
|
|
Print("50/152");
|
|
TEST_PolInt_T_2(_spoil_scenario,_TestResult,_TotalResult); //51
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_3(_spoil_scenario,_TestResult,_TotalResult); //52
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_4(_spoil_scenario,_TestResult,_TotalResult); //53
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_5(_spoil_scenario,_TestResult,_TotalResult); //54
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_6(_spoil_scenario,_TestResult,_TotalResult); //55
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_7(_spoil_scenario,_TestResult,_TotalResult); //56
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_8(_spoil_scenario,_TestResult,_TotalResult); //57
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_9(_spoil_scenario,_TestResult,_TotalResult); //58
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_10(_spoil_scenario,_TestResult,_TotalResult); //59
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_11(_spoil_scenario,_TestResult,_TotalResult); //60
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_12(_spoil_scenario,_TestResult,_TotalResult); //61
|
|
CHECK_RESULT
|
|
TEST_PolInt_T_13(_spoil_scenario,_TestResult,_TotalResult); //62
|
|
CHECK_RESULT
|
|
TEST_Spline1D_D_Linear(_spoil_scenario,_TestResult,_TotalResult); //63
|
|
CHECK_RESULT
|
|
TEST_Spline1D_D_Cubic(_spoil_scenario,_TestResult,_TotalResult); //64
|
|
CHECK_RESULT
|
|
TEST_Spline1D_D_GridDiff(_spoil_scenario,_TestResult,_TotalResult); //65
|
|
CHECK_RESULT
|
|
TEST_Spline1D_D_ConvDiff(_spoil_scenario,_TestResult,_TotalResult); //66
|
|
CHECK_RESULT
|
|
TEST_MinQP_D_U1(_spoil_scenario,_TestResult,_TotalResult); //67
|
|
CHECK_RESULT
|
|
TEST_MinQP_D_BC1(_spoil_scenario,_TestResult,_TotalResult); //68
|
|
CHECK_RESULT
|
|
TEST_MinLM_D_V(_spoil_scenario,_TestResult,_TotalResult); //69
|
|
CHECK_RESULT
|
|
TEST_MinLM_D_VJ(_spoil_scenario,_TestResult,_TotalResult); //70
|
|
CHECK_RESULT
|
|
TEST_MinLM_D_FGH(_spoil_scenario,_TestResult,_TotalResult); //71
|
|
CHECK_RESULT
|
|
TEST_MinLM_D_VB(_spoil_scenario,_TestResult,_TotalResult); //72
|
|
CHECK_RESULT
|
|
TEST_MinLM_D_Restarts(_spoil_scenario,_TestResult,_TotalResult); //73
|
|
CHECK_RESULT
|
|
TEST_MinLM_T_1(_spoil_scenario,_TestResult,_TotalResult); //74
|
|
CHECK_RESULT
|
|
TEST_MinLM_T_2(_spoil_scenario,_TestResult,_TotalResult); //75
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_NLF(_spoil_scenario,_TestResult,_TotalResult); //76
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_NLFG(_spoil_scenario,_TestResult,_TotalResult); //77
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_NLFGH(_spoil_scenario,_TestResult,_TotalResult); //78
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_NLFB(_spoil_scenario,_TestResult,_TotalResult); //79
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_NLScale(_spoil_scenario,_TestResult,_TotalResult); //80
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_Lin(_spoil_scenario,_TestResult,_TotalResult); //81
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_Linc(_spoil_scenario,_TestResult,_TotalResult); //82
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_Pol(_spoil_scenario,_TestResult,_TotalResult); //83
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_Polc(_spoil_scenario,_TestResult,_TotalResult); //84
|
|
CHECK_RESULT
|
|
TEST_LSFit_D_Spline(_spoil_scenario,_TestResult,_TotalResult); //85
|
|
CHECK_RESULT
|
|
TEST_LSFit_T_PolFit_1(_spoil_scenario,_TestResult,_TotalResult); //86
|
|
CHECK_RESULT
|
|
TEST_LSFit_T_PolFit_2(_spoil_scenario,_TestResult,_TotalResult); //87
|
|
CHECK_RESULT
|
|
TEST_LSFit_T_PolFit_3(_spoil_scenario,_TestResult,_TotalResult); //88
|
|
CHECK_RESULT
|
|
TEST_MatDet_D_1(_spoil_scenario,_TestResult,_TotalResult); //89
|
|
CHECK_RESULT
|
|
TEST_MatDet_D_2(_spoil_scenario,_TestResult,_TotalResult); //90
|
|
CHECK_RESULT
|
|
TEST_MatDet_D_3(_spoil_scenario,_TestResult,_TotalResult); //91
|
|
CHECK_RESULT
|
|
TEST_MatDet_D_4(_spoil_scenario,_TestResult,_TotalResult); //92
|
|
CHECK_RESULT
|
|
TEST_MatDet_D_5(_spoil_scenario,_TestResult,_TotalResult); //93
|
|
CHECK_RESULT
|
|
TEST_MatDet_T_0(_spoil_scenario,_TestResult,_TotalResult); //94
|
|
CHECK_RESULT
|
|
TEST_MatDet_T_1(_spoil_scenario,_TestResult,_TotalResult); //95
|
|
CHECK_RESULT
|
|
TEST_MatDet_T_2(_spoil_scenario,_TestResult,_TotalResult); //96
|
|
CHECK_RESULT
|
|
TEST_MatDet_T_3(_spoil_scenario,_TestResult,_TotalResult); //97
|
|
CHECK_RESULT
|
|
TEST_MatDet_T_4(_spoil_scenario,_TestResult,_TotalResult); //98
|
|
CHECK_RESULT
|
|
TEST_MatDet_T_5(_spoil_scenario,_TestResult,_TotalResult); //99
|
|
CHECK_RESULT
|
|
TEST_MinQP_D_LC1(_spoil_scenario,_TestResult,_TotalResult); //100
|
|
CHECK_RESULT
|
|
//--- 100 blocks were successful
|
|
Print("100/152");
|
|
TEST_MinQP_D_U2(_spoil_scenario,_TestResult,_TotalResult); //101
|
|
CHECK_RESULT
|
|
TEST_MinQP_D_NonConvex(_spoil_scenario,_TestResult,_TotalResult); //102
|
|
CHECK_RESULT
|
|
TEST_MinLP_Basic(_spoil_scenario,_TestResult,_TotalResult); //103
|
|
CHECK_RESULT
|
|
TEST_MinNLC_D_Inequality(_spoil_scenario,_TestResult,_TotalResult); //104
|
|
CHECK_RESULT
|
|
TEST_MinBC_D_1(_spoil_scenario,_TestResult,_TotalResult); //105
|
|
CHECK_RESULT
|
|
TEST_MinBC_NumDif(_spoil_scenario,_TestResult,_TotalResult); //106
|
|
CHECK_RESULT
|
|
TEST_IDW_D_MSTAB(_spoil_scenario,_TestResult,_TotalResult); //107
|
|
CHECK_RESULT
|
|
TEST_IDW_D_Serialize(_spoil_scenario,_TestResult,_TotalResult); //108
|
|
CHECK_RESULT
|
|
TEST_Parametric_RDP(_spoil_scenario,_TestResult,_TotalResult); //109
|
|
CHECK_RESULT
|
|
TEST_Spline2D_Bilinear(_spoil_scenario,_TestResult,_TotalResult); //110
|
|
CHECK_RESULT
|
|
TEST_Spline2D_Bicubic(_spoil_scenario,_TestResult,_TotalResult); //111
|
|
CHECK_RESULT
|
|
TEST_Spline2D_Unpack(_spoil_scenario,_TestResult,_TotalResult); //112
|
|
CHECK_RESULT
|
|
TEST_Spline2D_CopyTrans(_spoil_scenario,_TestResult,_TotalResult); //113
|
|
CHECK_RESULT
|
|
TEST_Spline3D_Trilinear(_spoil_scenario,_TestResult,_TotalResult); //114
|
|
CHECK_RESULT
|
|
TEST_Spline3D_Vector(_spoil_scenario,_TestResult,_TotalResult); //115
|
|
CHECK_RESULT
|
|
TEST_Clst_AHC(_spoil_scenario,_TestResult,_TotalResult); //116
|
|
CHECK_RESULT
|
|
TEST_Clst_Linkage(_spoil_scenario,_TestResult,_TotalResult); //117
|
|
CHECK_RESULT
|
|
TEST_Clst_Distance(_spoil_scenario,_TestResult,_TotalResult); //118
|
|
CHECK_RESULT
|
|
TEST_Clst_KClusters(_spoil_scenario,_TestResult,_TotalResult); //119
|
|
CHECK_RESULT
|
|
TEST_RandomForest_CLS(_spoil_scenario,_TestResult,_TotalResult); //120
|
|
CHECK_RESULT
|
|
TEST_RandomForest_Reg(_spoil_scenario,_TestResult,_TotalResult); //121
|
|
CHECK_RESULT
|
|
TEST_Filters_D_SMA(_spoil_scenario,_TestResult,_TotalResult); //122
|
|
CHECK_RESULT
|
|
TEST_Filters_D_EMA(_spoil_scenario,_TestResult,_TotalResult); //123
|
|
CHECK_RESULT
|
|
TEST_Filters_D_LRMA(_spoil_scenario,_TestResult,_TotalResult); //124
|
|
CHECK_RESULT
|
|
TEST_SSA_D_Basic(_spoil_scenario,_TestResult,_TotalResult); //125
|
|
CHECK_RESULT
|
|
TEST_SSA_D_Forecast(_spoil_scenario,_TestResult,_TotalResult); //126
|
|
CHECK_RESULT
|
|
TEST_KNN_Reg(_spoil_scenario,_TestResult,_TotalResult); //127
|
|
CHECK_RESULT
|
|
TEST_NN_Regr(_spoil_scenario,_TestResult,_TotalResult); //128
|
|
CHECK_RESULT
|
|
TEST_NN_Regr_N(_spoil_scenario,_TestResult,_TotalResult); //129
|
|
CHECK_RESULT
|
|
TEST_NN_Cls2(_spoil_scenario,_TestResult,_TotalResult); //130
|
|
CHECK_RESULT
|
|
TEST_NN_Cls3(_spoil_scenario,_TestResult,_TotalResult); //131
|
|
CHECK_RESULT
|
|
TEST_NN_TrainerObject(_spoil_scenario,_TestResult,_TotalResult); //132
|
|
CHECK_RESULT
|
|
TEST_NN_Ensembles_ES(_spoil_scenario,_TestResult,_TotalResult); //133
|
|
CHECK_RESULT
|
|
TEST_MinNLC_D_Equality(_spoil_scenario,_TestResult,_TotalResult); //134
|
|
CHECK_RESULT
|
|
TEST_MinNLC_D_Mixed(_spoil_scenario,_TestResult,_TotalResult); //135
|
|
CHECK_RESULT
|
|
TEST_MinNS_D_Unconstrained(_spoil_scenario,_TestResult,_TotalResult); //136
|
|
CHECK_RESULT
|
|
TEST_MinNS_D_Diff(_spoil_scenario,_TestResult,_TotalResult); //137
|
|
CHECK_RESULT
|
|
TEST_MinNS_D_BC(_spoil_scenario,_TestResult,_TotalResult); //138
|
|
CHECK_RESULT
|
|
TEST_MinNS_D_NLC(_spoil_scenario,_TestResult,_TotalResult); //139
|
|
CHECK_RESULT
|
|
TEST_Spline2D_Fit_Blocklls(_spoil_scenario,_TestResult,_TotalResult); //140
|
|
CHECK_RESULT
|
|
TEST_Spline2d_Vector(_spoil_scenario,_TestResult,_TotalResult); //141
|
|
CHECK_RESULT
|
|
TEST_RBF_D_HRBF(_spoil_scenario,_TestResult,_TotalResult); //142
|
|
CHECK_RESULT
|
|
TEST_RBF_D_Vector(_spoil_scenario,_TestResult,_TotalResult); //143
|
|
CHECK_RESULT
|
|
TEST_RBF_D_PolTerm(_spoil_scenario,_TestResult,_TotalResult); //144
|
|
CHECK_RESULT
|
|
TEST_RBF_D_Serialize(_spoil_scenario,_TestResult,_TotalResult); //145
|
|
CHECK_RESULT
|
|
TEST_Clst_KMeans(_spoil_scenario,_TestResult,_TotalResult); //146
|
|
CHECK_RESULT
|
|
TEST_LinReg_D_Basic(_spoil_scenario,_TestResult,_TotalResult); //147
|
|
CHECK_RESULT
|
|
TEST_SSA_D_Realtime(_spoil_scenario,_TestResult,_TotalResult); //148
|
|
CHECK_RESULT
|
|
TEST_KNN_Cls(_spoil_scenario,_TestResult,_TotalResult); //149
|
|
CHECK_RESULT
|
|
TEST_Spline1D_D_Monotone(_spoil_scenario,_TestResult,_TotalResult); //150
|
|
CHECK_RESULT
|
|
TEST_LSFit_T_4pl(_spoil_scenario,_TestResult,_TotalResult); //151
|
|
CHECK_RESULT
|
|
TEST_LSFit_T_5pl(_spoil_scenario,_TestResult,_TotalResult); //152
|
|
CHECK_RESULT
|
|
//--- all blocks were successful
|
|
Print("152/152");
|
|
//--- print total result
|
|
Print("Result = ",_TotalResult);
|
|
}
|
|
//+------------------------------------------------------------------+
|