* bug 15070 fixed: bitset() failed for bit pos as encoded integer
[scilab.git] / scilab / modules / elementary_functions / tests / nonreg_tests / bug_15070.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2017 - Samuel GOUGEON
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- CLI SHELL MODE -->
8 // <-- NO CHECK REF -->
9 //
10 // <-- Non-regression test for bug 15070 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/15070
14 //
15 // <-- Short Description -->
16 //    bitset() failed when the bit position was specified as an encoded integer
17
18 for v_enc = [11 12 14]           // value encoding
19     j = 0;
20     for bp_enc = [11 12 14]      // bit position encoding
21         value0 = iconvert(0, v_enc);
22         ind = iconvert((1:8)+(v_enc-11)*8, bp_enc);
23         for bp = ind
24           value = bitset(value0, bp);
25           assert_checkequal(value, value0 + 2^iconvert(bp-1, v_enc));
26           value0 = value;
27         end
28     end
29 end