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.
17 msgerr = msprintf(gettext("Function not defined for given argument type(s),\n"));
19 assert_checkerror("dlgamma(l)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%l_dlgamma")]);
20 assert_checkerror("gammaln(l)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%l_gammaln")]);
21 assert_checkerror("gamma(l)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%l_gamma")]);
22 tl = tlist(["mytlist", "field1", "field2"], [], []);
23 assert_checkerror("dlgamma(tl)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mytlist_dlgamma")]);
24 assert_checkerror("gammaln(tl)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mytlist_gammaln")]);
25 assert_checkerror("gamma(tl)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mytlist_gamma")]);
26 ml = mlist(['mymlist','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
27 assert_checkerror("dlgamma(ml)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mymlist_dlgamma")]);
28 assert_checkerror("gammaln(ml)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mymlist_gammaln")]);
29 assert_checkerror("gamma(ml)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%mymlist_gamma")]);
30 n(1, 1, 1, 1:2) = [1 2];
31 assert_checkerror("dlgamma(n)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%hm_dlgamma")]);
32 assert_checkerror("gammaln(n)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%hm_gammaln")]);
33 assert_checkerror("gamma(n)", [msgerr; msprintf(gettext(" check arguments or define function %s for overloading.\n"), "%hm_gamma")]);
34 function Y = %l_dlgamma(X), Y = %T; endfunction
35 function Y = %l_gammaln(X), Y = %T; endfunction
36 function Y = %l_gamma(X), Y = %T; endfunction
38 assert_checkequal(dlgamma(l), %T);
39 assert_checkequal(gammaln(l), %T);
40 assert_checkequal(gamma(l), %T);
41 function Y = %mytlist_dlgamma(X), Y = %T; endfunction
42 function Y = %mytlist_gammaln(X), Y = %T; endfunction
43 function Y = %mytlist_gamma(X), Y = %T; endfunction
44 tl = tlist(["mytlist", "field1", "field2"], [], []);
45 assert_checkequal(dlgamma(tl), %T);
46 assert_checkequal(gammaln(tl), %T);
47 assert_checkequal(gamma(tl), %T);
48 function Y = %mymlist_dlgamma(X), Y = %T; endfunction
49 function Y = %mymlist_gammaln(X), Y = %T; endfunction
50 function Y = %mymlist_gamma(X), Y = %T; endfunction
51 ml = mlist(['mymlist','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
52 assert_checkequal(dlgamma(ml), %T);
53 assert_checkequal(gammaln(ml), %T);
54 assert_checkequal(gamma(ml), %T);
55 function Y = %hm_dlgamma(X), Y = %T; endfunction
56 function Y = %hm_gammaln(X), Y = %T; endfunction
57 function Y = %hm_gamma(X), Y = %T; endfunction
58 n(1, 1, 1, 1:2) = [1 2];
59 assert_checkequal(dlgamma(n), %T);
60 assert_checkequal(gammaln(n), %T);
61 assert_checkequal(gamma(n), %T);