| //+------------------------------------------------------------------+
|
| //| 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);
|
| }
|
| //+------------------------------------------------------------------+
|