* Bug 16259 fixed: * and .* with (sparse) booleans extended
[scilab.git] / scilab / modules / ast / tests / unit_tests / dotmultiplication_with_booleans.tst
1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2019 - Samuel GOUGEON
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // ============================================================================
7
8 // <-- CLI SHELL MODE -->
9 // <-- NO CHECK REF -->
10
11 // ---------------------------------------------------------
12 // Unit tests for mixed {boolean, double} .* multiplications
13 // ---------------------------------------------------------
14
15 b = [%T %T %F ; %F %T %F];
16 spb = sparse(b);
17 d = [1 2 3; 4 5 6];
18 spd = sparse(d);
19 ref =  [1 2 0 ; 0 5 0];
20 spref = sparse(ref);
21
22 assert_checkequal(b .* d, ref);
23 assert_checkequal(d .* b, ref);
24
25 assert_checkequal(spb .* d, spref);
26 assert_checkequal(d .* spb, spref);
27 assert_checkequal(spb .* spd, spref);
28 assert_checkequal(spd .* spb, spref);
29 assert_checkequal(b .*spd, spref);
30 assert_checkequal(spd .* b, spref);
31
32 // -------------------------------------------------
33 // Unit tests for boolean .* boolean multiplications
34 // -------------------------------------------------
35
36 b =  [%T %T %F ; %F %T %F];
37 b2 = [%T %F %F ; %T %T %T];
38 spb = sparse(b);
39 ref =  [1 0 0 ; 0 1 0];
40 spref = sparse(ref);
41
42 assert_checkequal(b .* b2, ref);
43 assert_checkequal(spb .* b2, spref);
44 assert_checkequal(b2 .* spb, spref);
45 assert_checkequal(spb .* sparse(b2), spref);