1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - DIGITEO - Allan CORNET
5 // This file is distributed under the same license as the Scilab package.
6 // =============================================================================
8 // <-- CLI SHELL MODE -->
10 // <-- Non-regression test for bug 10450 -->
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=10450
15 // Allows overloading for gamma, dlgamma and gammaln functions for list, tlist,
16 // mlist and hypermatrices types.
18 msgerr = msprintf(gettext("Function not defined for given argument type(s),\n"));
21 assert_checkerror("dlgamma(l)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%l_dlgamma")]);
22 assert_checkerror("gammaln(l)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%l_gammaln")]);
23 assert_checkerror("gamma(l)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%l_gamma")]);
25 tl = tlist(["mytlist", "field1", "field2"], [], []);
26 assert_checkerror("dlgamma(tl)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mytlist_dlgamma")]);
27 assert_checkerror("gammaln(tl)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mytlist_gammaln")]);
28 assert_checkerror("gamma(tl)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mytlist_gamma")]);
30 ml = mlist(['mymlist','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
31 assert_checkerror("dlgamma(ml)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mymlist_dlgamma")]);
32 assert_checkerror("gammaln(ml)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mymlist_gammaln")]);
33 assert_checkerror("gamma(ml)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mymlist_gamma")]);
35 n(1, 1, 1, 1:2) = [1 2];
36 assert_checkerror("dlgamma(n)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%hm_dlgamma")]);
37 assert_checkerror("gammaln(n)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%hm_gammaln")]);
38 assert_checkerror("gamma(n)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%hm_gamma")]);
40 function Y = %l_dlgamma(X), Y = %T; endfunction
41 function Y = %l_gammaln(X), Y = %T; endfunction
42 function Y = %l_gamma(X), Y = %T; endfunction
44 assert_checkequal(dlgamma(l), %T);
45 assert_checkequal(gammaln(l), %T);
46 assert_checkequal(gamma(l), %T);
48 function Y = %mytlist_dlgamma(X), Y = %T; endfunction
49 function Y = %mytlist_gammaln(X), Y = %T; endfunction
50 function Y = %mytlist_gamma(X), Y = %T; endfunction
51 tl = tlist(["mytlist", "field1", "field2"], [], []);
52 assert_checkequal(dlgamma(tl), %T);
53 assert_checkequal(gammaln(tl), %T);
54 assert_checkequal(gamma(tl), %T);
56 function Y = %mymlist_dlgamma(X), Y = %T; endfunction
57 function Y = %mymlist_gammaln(X), Y = %T; endfunction
58 function Y = %mymlist_gamma(X), Y = %T; endfunction
59 ml = mlist(['mymlist','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
60 assert_checkequal(dlgamma(ml), %T);
61 assert_checkequal(gammaln(ml), %T);
62 assert_checkequal(gamma(ml), %T);
64 function Y = %hm_dlgamma(X), Y = %T; endfunction
65 function Y = %hm_gammaln(X), Y = %T; endfunction
66 function Y = %hm_gamma(X), Y = %T; endfunction
67 n(1, 1, 1, 1:2) = [1 2];
68 assert_checkequal(dlgamma(n), %T);
69 assert_checkequal(gammaln(n), %T);
70 assert_checkequal(gamma(n), %T);