diff --git a/matlab/ols/pooled_ols.m b/matlab/ols/pooled_ols.m index 3785bc25d7a6af37788698c5c103261deaa79f1a..7149e41c25ad22d80b0191debc2beef84cd49aab 100644 --- a/matlab/ols/pooled_ols.m +++ b/matlab/ols/pooled_ols.m @@ -76,8 +76,8 @@ else end st = dbstack(1); -if isoctave - % Workaround for bug in Octave 6, see https://savannah.gnu.org/bugs/?60531 +if isoctave && octave_ver_less_than('6.3.0') + % Workaround for https://savannah.gnu.org/bugs/?60531, fixed in 6.3.0 st = st(2:end); end if ~isempty(st) && strcmp(st(1).name, 'pooled_fgls') diff --git a/matlab/ols/sur.m b/matlab/ols/sur.m index 78b573abb026079a9e53570d048fab0f070c0c97..9dc92e4c5bc774d81d7ff33d0da004453b4d44ff 100644 --- a/matlab/ols/sur.m +++ b/matlab/ols/sur.m @@ -121,8 +121,8 @@ end % st = dbstack(1); -if isoctave - % Workaround for bug in Octave 6, see https://savannah.gnu.org/bugs/?60531 +if isoctave && octave_ver_less_than('6.3.0') + % Workaround for https://savannah.gnu.org/bugs/?60531, fixed in 6.3.0 st = st(2:end); end if ~isempty(st) && strcmp(st(1).name, 'surgibbs') diff --git a/tests/ecb/SUR/panel_var_diff_NB_simulation_test.mod b/tests/ecb/SUR/panel_var_diff_NB_simulation_test.mod index e5a1f85ee6bd34a813864e1a42f620f5294693ea..ce265aa47b7325b107b693566523de250ea5c375 100644 --- a/tests/ecb/SUR/panel_var_diff_NB_simulation_test.mod +++ b/tests/ecb/SUR/panel_var_diff_NB_simulation_test.mod @@ -182,33 +182,61 @@ if NSIMS > 1 error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]); end else - good = [-0.826686196809409 - -0.346753563700393 - 0.063013991583949 - 0.074802596658698 - -0.017440119721953 - -0.127090614348862 - 0.025293280404460 - 0.524290302468866 - -0.117611206771440 - -0.027776224547132 - -0.156590828735908 - 0.054039707976331 - 0.276257666502046 - 1.000417289621684 - 0.999336865129450 - -0.803258152338916 - -0.309594948488168 - 0.051602756230521 - 0.039275481081030 - 0.024897596371662 - -0.096310133845385 - -0.022630284059365 - 0.461683465196454 - -0.110278113383114 - 1.000000000000000]; + if isoctave + good = [-8.352553221721005e-01 + -3.197321434625048e-01 + 1.833371158471533e-02 + 5.535617069191032e-02 + 1.561983042003726e-02 + -8.993909626264719e-02 + 1.711785670581707e-02 + 4.757720040796121e-01 + -8.571091170339767e-02 + -2.950787496937523e-02 + -1.364615168219547e-01 + 3.188305976033711e-03 + 2.978809614745770e-01 + 1.000152497234268e+00 + 1.000581562867493e+00 + -8.285078166013811e-01 + -3.282738244438672e-01 + 1.707491564143498e-02 + 5.924757545427200e-02 + 4.811130814635710e-02 + -1.066481566003144e-01 + 4.462314484614635e-03 + 4.862610106651586e-01 + -7.133910570135164e-02 + 1.000000000000000e+00]; + else + good = [-0.826686196809409 + -0.346753563700393 + 0.063013991583949 + 0.074802596658698 + -0.017440119721953 + -0.127090614348862 + 0.025293280404460 + 0.524290302468866 + -0.117611206771440 + -0.027776224547132 + -0.156590828735908 + 0.054039707976331 + 0.276257666502046 + 1.000417289621684 + 0.999336865129450 + -0.803258152338916 + -0.309594948488168 + 0.051602756230521 + 0.039275481081030 + 0.024897596371662 + -0.096310133845385 + -0.022630284059365 + 0.461683465196454 + -0.110278113383114 + 1.000000000000000]; + end if max(abs(BETA' - good)) > 1e-14 - error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]); + error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA' - good)))]); end return end diff --git a/tests/ecb/SUR/panel_var_diff_NB_simulation_zero_eq.mod b/tests/ecb/SUR/panel_var_diff_NB_simulation_zero_eq.mod index 24667c57019d96e3a1f727d7e1da0b677e45f1fe..e58cec26196afc917cbf36d95ec49ce240536a26 100644 --- a/tests/ecb/SUR/panel_var_diff_NB_simulation_zero_eq.mod +++ b/tests/ecb/SUR/panel_var_diff_NB_simulation_zero_eq.mod @@ -181,33 +181,61 @@ if NSIMS > 1 error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]); end else - good = [-0.806260229719792 - -0.354371215026078 - 0.067618717060638 - 0.088053231576354 - -0.057161898696690 - -0.136999143481575 - 0.052047088887385 - 0.524022502978068 - -0.110211572532150 - -0.041415758049800 - -0.162997606880957 - 0.091000830792721 - 0.281196660545012 - 1.000000000000000 - 1.000000000000000 - -0.823354793011220 - -0.337521089381118 - 0.025493177305917 - 0.059513905441361 - 0.016845886773011 - -0.151537340795868 - 0.004832174649536 - 0.430883913061161 - -0.071743697511067 - 1.000000000000000]; + if isoctave + good = [-8.508881335545030e-01 + -3.179264262251253e-01 + 1.706077291589632e-02 + 5.094145179829853e-02 + 2.872070962130504e-02 + -7.897668797162463e-02 + 1.813470896478606e-02 + 4.750302886967402e-01 + -1.012751928847461e-01 + -6.283292307902170e-02 + -1.545808456642344e-01 + 1.853656209646514e-02 + 3.063655024212261e-01 + 1.000000000000000e+00 + 1.000000000000000e+00 + -8.099002474688380e-01 + -3.261126857285238e-01 + 1.076547521814692e-02 + 7.106757398866259e-02 + 5.150937460065234e-02 + -8.935904867391903e-02 + 2.021540487647845e-03 + 5.175196576194863e-01 + -8.339003914920010e-02 + 1.000000000000000e+00]; + else + good = [-0.806260229719792 + -0.354371215026078 + 0.067618717060638 + 0.088053231576354 + -0.057161898696690 + -0.136999143481575 + 0.052047088887385 + 0.524022502978068 + -0.110211572532150 + -0.041415758049800 + -0.162997606880957 + 0.091000830792721 + 0.281196660545012 + 1.000000000000000 + 1.000000000000000 + -0.823354793011220 + -0.337521089381118 + 0.025493177305917 + 0.059513905441361 + 0.016845886773011 + -0.151537340795868 + 0.004832174649536 + 0.430883913061161 + -0.071743697511067 + 1.000000000000000]; + end if max(abs(BETA' - good)) > 1e-14 - error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]); + error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA' - good)))]); end return end diff --git a/tests/ecb/SUR/sur_noniterative.mod b/tests/ecb/SUR/sur_noniterative.mod index 35ef510bd4b5f76220f7b0eb1920b54077f91126..6bee2aa794a63ba35a6dcf9c5449a9d33dec8829 100644 --- a/tests/ecb/SUR/sur_noniterative.mod +++ b/tests/ecb/SUR/sur_noniterative.mod @@ -182,33 +182,61 @@ if NSIMS > 1 error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]); end else - good = [-0.826686383251952 - -0.346754226737713 - 0.063012625739192 - 0.074803008678581 - -0.017406695286611 - -0.127075466955954 - 0.025273119798253 - 0.524311285013928 - -0.117653504652072 - -0.027795769946178 - -0.156599054434094 - 0.054048691636616 - 0.276250884768198 - 1.000417819589230 - 0.999336022919911 - -0.803262845969268 - -0.309598590696623 - 0.051598925732525 - 0.039275097813797 - 0.024902442384228 - -0.096310332265968 - -0.022625946626029 - 0.461672601960238 - -0.110232456667380 - 1.000000000000000]; + if isoctave + good = [-8.352711907718519e-01 + -3.197368335063609e-01 + 1.830685100998439e-02 + 5.536915629862437e-02 + 1.566163243855698e-02 + -8.995230955089947e-02 + 1.710935092250227e-02 + 4.757441246761275e-01 + -8.573675430889326e-02 + -2.950285276336573e-02 + -1.364655025289198e-01 + 3.184886642127426e-03 + 2.978870523376794e-01 + 1.000152378474068e+00 + 1.000581466494965e+00 + -8.285158207247403e-01 + -3.282747267443599e-01 + 1.706204285142614e-02 + 5.925659983555025e-02 + 4.809406612246896e-02 + -1.066459229859625e-01 + 4.461752530619897e-03 + 4.861864360463416e-01 + -7.128754584729166e-02 + 1.000000000000000e+00]; + else + good = [-0.826686383251952 + -0.346754226737713 + 0.063012625739192 + 0.074803008678581 + -0.017406695286611 + -0.127075466955954 + 0.025273119798253 + 0.524311285013928 + -0.117653504652072 + -0.027795769946178 + -0.156599054434094 + 0.054048691636616 + 0.276250884768198 + 1.000417819589230 + 0.999336022919911 + -0.803262845969268 + -0.309598590696623 + 0.051598925732525 + 0.039275097813797 + 0.024902442384228 + -0.096310332265968 + -0.022625946626029 + 0.461672601960238 + -0.110232456667380 + 1.000000000000000]; + end if max(abs(BETA' - good)) > 1e-14 - error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]); + error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA' - good)))]); end return end diff --git a/tests/ecb/SUR/sur_params_noniterative.mod b/tests/ecb/SUR/sur_params_noniterative.mod index e74a293020412cc8531f071d12f94915468fbe4d..c85ffe2e8571db4a3a9f5793538b0f2a2ebc8c19 100644 --- a/tests/ecb/SUR/sur_params_noniterative.mod +++ b/tests/ecb/SUR/sur_params_noniterative.mod @@ -181,31 +181,59 @@ if NSIMS > 1 error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]); end else - good = [-0.811559435201128 - -0.323715338568976 - 0.073666282610569 - 0.058397703958446 - 0.018989604697742 - -0.109597659887432 - 0.003766796763203 - 0.510389966839712 - -0.072235928612349 - -0.043850066260836 - -0.153283917138772 - 0.058739144948151 - 0.292121949736756 - 1.000413662363949 - 0.999337514406012 - -0.822375165893149 - -0.323715338568977 - 0.046096335070402 - 0.058397703958446 - 0.018989604697742 - -0.109597659887433 - 0.003766796763203 - 0.480506381923643 - -0.111002148299648 - 1.000000000000000]; + if isoctave + good = [-8.387004799504507e-01 + -3.237153385689760e-01 + 1.627623494498021e-02 + 5.839770395844600e-02 + 1.898960469774210e-02 + -1.095976598874320e-01 + 3.766796763202500e-03 + 4.616983632734178e-01 + -7.223592861234940e-02 + -4.385006626083560e-02 + -1.532839171387720e-01 + 5.627557877681382e-03 + 2.921219497367560e-01 + 1.000151654801889e+00 + 1.000581567733505e+00 + -8.223751658931490e-01 + -3.237153385689770e-01 + 1.795374571546572e-02 + 5.839770395844610e-02 + 1.898960469774220e-02 + -1.095976598874330e-01 + 3.766796763202560e-03 + 4.805063819236430e-01 + -5.852923523496190e-02 + 1.000000000000000e+00]; + else + good = [-0.811559435201128 + -0.323715338568976 + 0.073666282610569 + 0.058397703958446 + 0.018989604697742 + -0.109597659887432 + 0.003766796763203 + 0.510389966839712 + -0.072235928612349 + -0.043850066260836 + -0.153283917138772 + 0.058739144948151 + 0.292121949736756 + 1.000413662363949 + 0.999337514406012 + -0.822375165893149 + -0.323715338568977 + 0.046096335070402 + 0.058397703958446 + 0.018989604697742 + -0.109597659887433 + 0.003766796763203 + 0.480506381923643 + -0.111002148299648 + 1.000000000000000]; + end if max(abs(BETA' - good)) > 2e-14 error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA' - good)))]); end diff --git a/tests/ecb/pooled_fgls/panel_var_diff_NB_simulation_test.mod b/tests/ecb/pooled_fgls/panel_var_diff_NB_simulation_test.mod index c36a2a5d4b0c927bf5a8bdf8c6d9c2954d00119a..171f4dc5392f5fd9083d6a6d9951afa8afc02eee 100644 --- a/tests/ecb/pooled_fgls/panel_var_diff_NB_simulation_test.mod +++ b/tests/ecb/pooled_fgls/panel_var_diff_NB_simulation_test.mod @@ -194,33 +194,61 @@ if NSIMS > 1 error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]); end else - good = [-0.814463611096955 - -0.327545854281441 - 0.058155751549620 - 0.056956172127541 - 0.004760467203543 - -0.110209140210870 - 0.000873625473015 - 0.492984603730353 - -0.110739844810764 - -0.026953553332579 - -0.155433250333810 - 0.053391289583053 - 0.275361374992940 - 1.000446511792020 - 0.999278815424852 - -0.814463611096955 - -0.327545854281441 - 0.058155751549620 - 0.056956172127541 - 0.004760467203543 - -0.110209140210870 - 0.000873625473015 - 0.492984603730353 - -0.110739844810764 - 0.999278815424852]; + if isoctave + good = [-8.316948155834608e-01 + -3.234334069775354e-01 + 1.844389028026164e-02 + 5.681483820127380e-02 + 3.240547937543738e-02 + -9.766788804673115e-02 + 1.056637137077583e-02 + 4.833681328497947e-01 + -7.893398290308180e-02 + -2.936396277337527e-02 + -1.362519309595106e-01 + 3.082943385113618e-03 + 2.979145726897833e-01 + 1.000152555627138e+00 + 1.000546950369327e+00 + -8.316948155834608e-01 + -3.234334069775354e-01 + 1.844389028026164e-02 + 5.681483820127380e-02 + 3.240547937543738e-02 + -9.766788804673115e-02 + 1.056637137077583e-02 + 4.833681328497947e-01 + -7.893398290308180e-02 + 1.000546950369327e+00]; + else + good = [-0.814463611096955 + -0.327545854281441 + 0.058155751549620 + 0.056956172127541 + 0.004760467203543 + -0.110209140210870 + 0.000873625473015 + 0.492984603730353 + -0.110739844810764 + -0.026953553332579 + -0.155433250333810 + 0.053391289583053 + 0.275361374992940 + 1.000446511792020 + 0.999278815424852 + -0.814463611096955 + -0.327545854281441 + 0.058155751549620 + 0.056956172127541 + 0.004760467203543 + -0.110209140210870 + 0.000873625473015 + 0.492984603730353 + -0.110739844810764 + 0.999278815424852]; + end if max(abs(BETA' - good)) > 1e-14 - error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]); + error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA' - good)))]); end return end diff --git a/tests/ecb/pooled_fgls/test_param_names.mod b/tests/ecb/pooled_fgls/test_param_names.mod index cc76ee1497cc69c75017e4cf7596592579a495b5..d6793407b44bb46f2f127947631de9b0a3417db5 100644 --- a/tests/ecb/pooled_fgls/test_param_names.mod +++ b/tests/ecb/pooled_fgls/test_param_names.mod @@ -199,33 +199,61 @@ if NSIMS > 1 error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]); end else - good = [-0.814720065821038 - -0.327476517170325 - 0.058494818795786 - 0.057190907485572 - 0.018989604697742 - -0.109597659887432 - 0.003766796763203 - 0.480506381923644 - -0.072235928612349 - -0.043850066260836 - -0.153283917138772 - 0.032874498377282 - 0.292121949736756 - 1.000000000000000 - 1.000000000000000 - -0.814720065821038 - -0.327476517170325 - 0.058494818795786 - 0.057190907485572 - 0.018989604697742 - -0.109597659887433 - 0.003766796763203 - 0.480506381923643 - -0.072235928612349 - 0.999222744717732]; + if isoctave + good = [-8.310501956997751e-01 + -3.225294235017088e-01 + 1.865216033306362e-02 + 5.663863653611149e-02 + 1.898960469774210e-02 + -1.095976598874320e-01 + 3.766796763202500e-03 + 4.805063819236440e-01 + -7.223592861234940e-02 + -4.385006626083560e-02 + -1.532839171387720e-01 + 3.287449837728250e-02 + 2.921219497367560e-01 + 1.000000000000000e+00 + 1.000000000000000e+00 + -8.310501956997751e-01 + -3.225294235017088e-01 + 1.865216033306362e-02 + 5.663863653611149e-02 + 1.898960469774220e-02 + -1.095976598874330e-01 + 3.766796763202560e-03 + 4.805063819236430e-01 + -7.223592861234940e-02 + 9.987547807197997e-01]; + else + good = [-0.814720065821038 + -0.327476517170325 + 0.058494818795786 + 0.057190907485572 + 0.018989604697742 + -0.109597659887432 + 0.003766796763203 + 0.480506381923644 + -0.072235928612349 + -0.043850066260836 + -0.153283917138772 + 0.032874498377282 + 0.292121949736756 + 1.000000000000000 + 1.000000000000000 + -0.814720065821038 + -0.327476517170325 + 0.058494818795786 + 0.057190907485572 + 0.018989604697742 + -0.109597659887433 + 0.003766796763203 + 0.480506381923643 + -0.072235928612349 + 0.999222744717732]; + end if max(abs(BETA' - good)) > 1e-14 - error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]); + error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA' - good)))]); end return end diff --git a/tests/ecb/pooled_ols/panel_var_diff_NB_simulation_test.mod b/tests/ecb/pooled_ols/panel_var_diff_NB_simulation_test.mod index bed845401f72ac559088a38c88e48ea2601c821c..812b7dddfcc44f4300987dade1cfdd9392f24ffa 100644 --- a/tests/ecb/pooled_ols/panel_var_diff_NB_simulation_test.mod +++ b/tests/ecb/pooled_ols/panel_var_diff_NB_simulation_test.mod @@ -194,33 +194,61 @@ if NSIMS > 1 error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]); end else - good = [-0.814685080218300 - -0.327809964140588 - 0.058359966460475 - 0.056151094599907 - 0.004707755717058 - -0.110288651670160 - 0.000910770641800 - 0.494342669441397 - -0.109455922483561 - -0.029329632163194 - -0.157236653586389 - 0.054467548349538 - 0.275969658826900 - 1.000451016087141 - 0.999236021952814 - -0.814685080218300 - -0.327809964140588 - 0.058359966460475 - 0.056151094599907 - 0.004707755717058 - -0.110288651670160 - 0.000910770641800 - 0.494342669441397 - -0.109455922483561 - 0.999236021952814]; + if isoctave + good = [-8.326280521072452e-01 + -3.245092907529956e-01 + 1.559933898700820e-02 + 5.713420837713284e-02 + 3.388617725743132e-02 + -9.835803574929934e-02 + 1.037828626390050e-02 + 4.790835066516009e-01 + -7.694420195196504e-02 + -2.922379636988930e-02 + -1.371982891499323e-01 + 2.777450595768412e-03 + 2.974861843569638e-01 + 1.000142844833019e+00 + 1.000541015648813e+00 + -8.326280521072452e-01 + -3.245092907529956e-01 + 1.559933898700820e-02 + 5.713420837713284e-02 + 3.388617725743132e-02 + -9.835803574929934e-02 + 1.037828626390050e-02 + 4.790835066516009e-01 + -7.694420195196504e-02 + 1.000541015648813e+00]; + else + good = [-0.814685080218300 + -0.327809964140588 + 0.058359966460475 + 0.056151094599907 + 0.004707755717058 + -0.110288651670160 + 0.000910770641800 + 0.494342669441397 + -0.109455922483561 + -0.029329632163194 + -0.157236653586389 + 0.054467548349538 + 0.275969658826900 + 1.000451016087141 + 0.999236021952814 + -0.814685080218300 + -0.327809964140588 + 0.058359966460475 + 0.056151094599907 + 0.004707755717058 + -0.110288651670160 + 0.000910770641800 + 0.494342669441397 + -0.109455922483561 + 0.999236021952814]; + end if max(abs(BETA' - good)) > 1e-14 - error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]); + error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA' - good)))]); end return end diff --git a/tests/ecb/pooled_ols/test_param_names.mod b/tests/ecb/pooled_ols/test_param_names.mod index fad39e7e5deb22d762eabe069013fc9246ab82ba..510a485998c26f8da57ccf83e7b2e9f3b3b9211f 100644 --- a/tests/ecb/pooled_ols/test_param_names.mod +++ b/tests/ecb/pooled_ols/test_param_names.mod @@ -199,33 +199,61 @@ if NSIMS > 1 error(['sum(abs(mean(BETA)'' - calibrated_values)) ' num2str(sum(abs(mean(BETA)' - calibrated_values)))]); end else - good = [-0.814685080218300 - -0.327809964140588 - 0.058359966460474 - 0.056151094599907 - 0.018989604697742 - -0.109597659887432 - 0.003766796763203 - 0.480506381923644 - -0.072235928612349 - -0.043850066260836 - -0.153283917138772 - 0.032874498377282 - 0.292121949736756 - 1.000000000000000 - 1.000000000000000 - -0.814685080218300 - -0.327809964140588 - 0.058359966460474 - 0.056151094599907 - 0.018989604697742 - -0.109597659887433 - 0.003766796763203 - 0.480506381923643 - -0.072235928612349 - 0.999158727555345]; + if isoctave + good = [-8.326280521072453e-01 + -3.245092907529958e-01 + 1.559933898700814e-02 + 5.713420837713350e-02 + 1.898960469774210e-02 + -1.095976598874320e-01 + 3.766796763202500e-03 + 4.805063819236440e-01 + -7.223592861234940e-02 + -4.385006626083560e-02 + -1.532839171387720e-01 + 3.287449837728250e-02 + 2.921219497367560e-01 + 1.000000000000000e+00 + 1.000000000000000e+00 + -8.326280521072453e-01 + -3.245092907529958e-01 + 1.559933898700814e-02 + 5.713420837713350e-02 + 1.898960469774220e-02 + -1.095976598874330e-01 + 3.766796763202560e-03 + 4.805063819236430e-01 + -7.223592861234940e-02 + 9.990194453441936e-01]; + else + good = [-0.814685080218300 + -0.327809964140588 + 0.058359966460474 + 0.056151094599907 + 0.018989604697742 + -0.109597659887432 + 0.003766796763203 + 0.480506381923644 + -0.072235928612349 + -0.043850066260836 + -0.153283917138772 + 0.032874498377282 + 0.292121949736756 + 1.000000000000000 + 1.000000000000000 + -0.814685080218300 + -0.327809964140588 + 0.058359966460474 + 0.056151094599907 + 0.018989604697742 + -0.109597659887433 + 0.003766796763203 + 0.480506381923643 + -0.072235928612349 + 0.999158727555345]; + end if max(abs(BETA' - good)) > 1e-14 - error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA - good)))]); + error(['sum of BETA'' - good was: ' num2str(sum(abs(BETA' - good)))]); end return end diff --git a/tests/estimation/univariate/ols/mc-ols.inc b/tests/estimation/univariate/ols/mc-ols.inc index 9d5977c98e2ee2d06ae02ee6c857421d2a90316a..ce9c639d4574bd66701105c3a20b9ce552ceb54b 100644 --- a/tests/estimation/univariate/ols/mc-ols.inc +++ b/tests/estimation/univariate/ols/mc-ols.inc @@ -49,36 +49,81 @@ verbatim; error('There is probably an error in the OLS routine.') end else + % NB: estimation results depend on the sequence of generated random + % numbers, hence we need to hardcode different results between MATLAB + % and Octave if strcmp(M_.fname, 'ols_base') - good = [0.025487074270635 - -0.126705792250240 - 0.002639663639062 - 0.486913131141265 - -0.027702100375691]; + if isoctave + good = [2.509401520579608e-02 + -1.212468793686628e-01 + 2.983003417202038e-02 + 4.645373135672548e-01 + -6.312448906643650e-02]; + else + good = [0.025487074270635 + -0.126705792250240 + 0.002639663639062 + 0.486913131141265 + -0.027702100375691]; + end elseif strcmp(M_.fname, 'ols_param_names') - good = [-0.125265361034515 - 0.497003481797959]; + if isoctave + good = [-0.125307512725951 + 0.465364467369817]; + else + good = [-0.125265361034515 + 0.497003481797959]; + end elseif strcmp(M_.fname, 'ols_date_range') - good = [0.468607715487806 - -0.011224442004140 - 0.033681224841824 - -0.126743281213504]; + if isoctave + good = [4.775810440061960e-01 + 2.096533656963026e-02 + 3.264889547460539e-02 + -1.167420901882959e-01]; + else + good = [0.468607715487806 + -0.011224442004140 + 0.033681224841824 + -0.126743281213504]; + end elseif strcmp(M_.fname, 'ols_wc_1') - good = [0.466534186307255 - -0.010596174928406 - 0.035098464382347 - -0.126502172176703]; + if isoctave + good = [4.778519485900916e-01 + 2.028231364527827e-02 + 3.186766890724485e-02 + -1.173897445629599e-01]; + else + good = [0.466534186307255 + -0.010596174928406 + 0.035098464382347 + -0.126502172176703]; + end elseif strcmp(M_.fname, 'ols_wc_2') - good = [0.485802603276717 - 0.002660854661647 - 0.025434782170432 - -0.126939890810119 - 0.043688440124315]; + if isoctave + good = [4.679679703340907e-01 + 2.987618894535485e-02 + 2.503849196608867e-02 + -1.206391201296474e-01 + 3.435379133407408e-02]; + else + good = [0.485802603276717 + 0.002660854661647 + 0.025434782170432 + -0.126939890810119 + 0.043688440124315]; + end elseif strcmp(M_.fname, 'ols_wc_3') - good = [0.490636551206316 - 0.014209413280418 - 0.028534044956486 - -0.094387460262917]; + if isoctave + good = [4.766230170524117e-01 + 2.500479091401997e-02 + 2.333265887171398e-02 + -9.913848386063488e-02]; + else + good = [0.490636551206316 + 0.014209413280418 + 0.028534044956486 + -0.094387460262917]; + end end if max(abs(good-Beta(:,pid)'))>1e-2 error('There is probably an error in the OLS routine.') diff --git a/tests/histval_initval_file_unit_tests.m b/tests/histval_initval_file_unit_tests.m index 183ce12081cfca2b0e5ac5e3995353621e9859fd..34f558b6b39e8cf99b7c142665cde412020ecf2c 100644 --- a/tests/histval_initval_file_unit_tests.m +++ b/tests/histval_initval_file_unit_tests.m @@ -148,6 +148,11 @@ fprintf(fh, '%f ', y); fprintf(fh, '];\n'); fclose(fh); +if isoctave + % To ensure that Octave sees the newly-created data.m script + rehash +end + M.endo_nbr = 1; M.orig_endo_nbr = 1; M.endo_names = {'y'};