* Bug 16365 fixed: median(m,'r'|'c') was wrong after 5dc990
[scilab.git] / scilab / modules / string / tests / nonreg_tests / bug_9838.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2011 - INRIA - Serge Steer
4 // Copyright (C) 2017 - Samuel GOUGEON
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8 // <-- CLI SHELL MODE -->
9 // <-- NO CHECK REF -->
10 //
11 // <-- Non-regression test for bug 9838 -->
12 //
13 // <-- Bugzilla URL -->
14 // http://bugzilla.scilab.org/9838
15 //
16 // <-- Short Description -->
17 // evstr() poorly supported comments in expressions
18
19 assert_checkequal(evstr('//xxx'),[]);
20 t=["1";
21    "2";
22    "//xxx"];
23 assert_checkequal(evstr(t),[1;2]);
24
25 //  Row of expressions:
26 assert_checkequal(evstr(["// test", "// test line 2"]), []);
27 assert_checkequal(evstr(["1 2", "// test", "3 4"]), [1 2 3 4]);
28 assert_checkequal(evstr(["1 // abc", "// no result", "3 // def"]), [1 3]);
29 assert_checkequal(evstr(["1 // abc", " // no result", "3 // def"]), [1 3]);
30 assert_checkequal(evstr(["1 // abc", "[] // no result", "3 // def"]), [1 3]);
31
32 ab = """ab""";
33 ht = """http://a.b""";
34 res = ["ab", "http://a.b", "ab // cd"];
35 assert_checkequal(evstr([ab, ht, """ab // cd"""]), res);
36 assert_checkequal(evstr([ab, ht+" // test", "''ab // cd''"]), res);
37 assert_checkequal(evstr([ab, ht+"// test", """ab // cd"""]), res);
38 assert_checkequal(evstr([ab, "''http://a.b'' // test", "''ab // cd''"]), res);
39 assert_checkequal(evstr(["// ab", """3"" // http://a.b", """ab // cd"""]), ["3" "ab // cd"]);
40 assert_checkequal(evstr(["// ab", """3"" ""//"" ""http://a.b""", """ab // cd"""]), ..
41   ["3" "//" "http://a.b" "ab // cd"]);
42 assert_checkequal(evstr([ab, ht, """ab // cd"""]), res);
43
44 //  Matrix of expressions:
45 assert_checkequal(evstr(["1;2 // A", "3;4 // B //"]), [1 3 ; 2 4]);
46 assert_checkequal(evstr(["1 2 // A"; "3 4 // B //"]), [1 2 ; 3 4]);
47 assert_checkequal(evstr(["1;2 // A", "3;4 // B //"; "5// C" "6// D"]), [1 3 ; 2 4 ; 5 6]);
48 assert_checkequal(evstr(["1 // un", "2 // deux"; "3 // trois", "4 // quatre"]), [1 2 ; 3 4]);