1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2015 - Scilab Enteprises - Antoine ELIAS
5 // This file is distributed under the same license as the Scilab package.
6 // =============================================================================
8 // <-- Non-regression test for bug 13918 -->
10 // <-- Bugzilla URL -->
11 // http://bugzilla.scilab.org/show_bug.cgi?id=13918
13 // <-- Short Description -->
14 // invalid operation on hypermatrix must call overload functions
15 // <-- CLI SHELL MODE -->
17 msg1 = _("Undefined operation for the given operands.\n");
18 msg2 = _("check or define function %s for overloading.\n");
24 assert_checkerror("a3 + a2", msprintf(msg1 + "%s", msprintf(msg2, "%s_a_s")));
25 assert_checkerror("a2 + a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_a_s")));
27 assert_checkerror("a3 * %s + a2", msprintf(msg1 + "%s", msprintf(msg2, "%p_a_s")));
28 assert_checkerror("a2 + a3 * %s", msprintf(msg1 + "%s", msprintf(msg2, "%s_a_p")));
30 assert_checkerror("sparse(a2) + a3", msprintf(msg1 + "%s", msprintf(msg2, "%sp_a_s")));
31 assert_checkerror("a3 + sparse(a2)", msprintf(msg1 + "%s", msprintf(msg2, "%s_a_sp")));
34 assert_checkerror("a3 & a2", msprintf(msg1 + "%s", msprintf(msg2, "%s_h_s")));
35 assert_checkerror("a2 & a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_h_s")));
37 assert_checkerror("int8(a3) & int8(a2)", msprintf(msg1 + "%s", msprintf(msg2, "%i_h_i")));
38 assert_checkerror("int8(a2) & int8(a3)", msprintf(msg1 + "%s", msprintf(msg2, "%i_h_i")));
41 assert_checkerror("a2 / a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_r_s")));
42 assert_checkerror("a3 / a2", msprintf(msg1 + "%s", msprintf(msg2, "%s_r_s")));
44 assert_checkerror("sparse(a2) / a3", msprintf(msg1 + "%s", msprintf(msg2, "%sp_r_s")));
45 assert_checkerror("a3 / sparse(a2)", msprintf(msg1 + "%s", msprintf(msg2, "%s_r_sp")));
48 assert_checkerror("a3 ./ a2", msprintf(msg1 + "%s", msprintf(msg2, "%s_d_s")));
49 assert_checkerror("a2 ./ a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_d_s")));
51 assert_checkerror("a3 ./ sparse(a2)", msprintf(msg1 + "%s", msprintf(msg2, "%s_d_sp")));
53 assert_checkerror("sparse(a2) ./ a3", msprintf(msg1 + "%s", msprintf(msg2, "%sp_d_s")));
55 assert_checkerror("(a2 * %s) ./ a3", msprintf(msg1 + "%s", msprintf(msg2, "%p_d_s")));
56 assert_checkerror("(a3 * %s) ./ a2", msprintf(msg1 + "%s", msprintf(msg2, "%p_d_s")));
59 assert_checkerror("a3 .* a2", msprintf(msg1 + "%s", msprintf(msg2, "%s_x_s")));
60 assert_checkerror("a2 .* a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_x_s")));
62 assert_checkerror("sparse(a2) .* a3", msprintf(msg1 + "%s", msprintf(msg2, "%sp_x_s")));
64 assert_checkerror("a3 .* sparse(a2)", msprintf(msg1 + "%s", msprintf(msg2, "%s_x_sp")));
66 assert_checkerror("(a2 * %s) .* a3", msprintf(msg1 + "%s", msprintf(msg2, "%p_x_s")));
67 assert_checkerror("(a3 * %s) .* a2", msprintf(msg1 + "%s", msprintf(msg2, "%p_x_s")));
69 assert_checkerror("a2 .* (a3 * %s)", msprintf(msg1 + "%s", msprintf(msg2, "%s_x_p")));
70 assert_checkerror("a3 .* (a2 * %s)", msprintf(msg1 + "%s", msprintf(msg2, "%s_x_p")));
73 assert_checkerror("a3 \ a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_l_s")));
74 assert_checkerror("a2 \ a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_l_s")));
75 assert_checkerror("a3 \ a2", msprintf(msg1 + "%s", msprintf(msg2, "%s_l_s")));
78 assert_checkerror("a3 * a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_m_s")));
79 assert_checkerror("a3 * a2", msprintf(msg1 + "%s", msprintf(msg2, "%s_m_s")));
80 assert_checkerror("a2 * a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_m_s")));
82 assert_checkerror("sparse(a2) * a3", msprintf(msg1 + "%s", msprintf(msg2, "%sp_m_s")));
84 assert_checkerror("a3 * sparse(a2)", msprintf(msg1 + "%s", msprintf(msg2, "%s_m_sp")));
87 assert_checkerror("a3 | a2", msprintf(msg1 + "%s", msprintf(msg2, "%s_g_s")));
88 assert_checkerror("a2 | a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_g_s")));
90 assert_checkerror("int8(a3) | int8(a2)", msprintf(msg1 + "%s", msprintf(msg2, "%i_g_i")));
91 assert_checkerror("int8(a2) | int8(a3)", msprintf(msg1 + "%s", msprintf(msg2, "%i_g_i")));
94 assert_checkerror("a3 - a2", msprintf(msg1 + "%s", msprintf(msg2, "%s_s_s")));
95 assert_checkerror("a2 - a3", msprintf(msg1 + "%s", msprintf(msg2, "%s_s_s")));
97 assert_checkerror("(a3 * %s) - (a2 * %s)", msprintf(msg1 + "%s", msprintf(msg2, "%p_s_p")));
98 assert_checkerror("(a2 * %s) - (a3 * %s)", msprintf(msg1 + "%s", msprintf(msg2, "%p_s_p")));
100 assert_checkerror("(a3 * %s) - a2", msprintf(msg1 + "%s", msprintf(msg2, "%p_s_s")));
101 assert_checkerror("(a2 * %s) - a3", msprintf(msg1 + "%s", msprintf(msg2, "%p_s_s")));
103 assert_checkerror("a3 - (a2 * %s)", msprintf(msg1 + "%s", msprintf(msg2, "%s_s_p")));
104 assert_checkerror("a2 - (a3 * %s)", msprintf(msg1 + "%s", msprintf(msg2, "%s_s_p")));
106 assert_checkerror("a3 - sparse(a2)", msprintf(msg1 + "%s", msprintf(msg2, "%s_s_sp")));
108 assert_checkerror("sparse(a2) - a3", msprintf(msg1 + "%s", msprintf(msg2, "%sp_s_s")));