* Bug #13420 fixed - mutation_ga_binary did not calculate properly multiple mutations.
[scilab.git] / scilab / modules / genetic_algorithms / tests / nonreg_tests / bug_13420.tst
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel
3 //
4 //  This file is distributed under the same license as the Scilab package.
5 // =============================================================================
6 //
7 // <-- Non-regression test for bug  -->
8 //
9 // <-- Bugzilla URL -->
10 // http://bugzilla.scilab.org/13420
11 //
12 // <-- Short Description -->
13 // mutation_ga_binary did not properly write mutliple mutations
14 //
15 // <-- CLI SHELL MODE -->
16
17 param = init_param("binary_length", 8, "multi_mut", %t, "multi_mut_nb", 6);
18
19 for i = 1:100
20     A = "11100011";
21     [A_mut, pos] = mutation_ga_binary(A, param);
22
23     A = strsplit(A);
24     A_mut = strsplit(A_mut);
25
26     tst_mut = A(pos) <> A_mut(pos);
27     tst_notmut = A(setdiff(1:8, pos)) == A_mut(setdiff(1:8, pos));
28
29     assert_checktrue(and(tst_mut));
30     assert_checktrue(and(tst_notmut));
31 end