* Bug #12335 fixed - strtod didn't work with negative numbers.
[scilab.git] / scilab / modules / string / tests / unit_tests / strtod.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2007-2008 - INRIA
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- CLI SHELL MODE -->
9
10 //===============================
11 // strtod
12 //===============================
13 N = 666.666;
14 STREND = " is a double";
15 STR = string(N)+STREND;
16 d = strtod(STR);
17 assert_checkequal(d, N);
18 [d,s] = strtod(STR);
19 assert_checkequal(d, N);
20 assert_checkequal(s, STREND);
21 //===============================
22 STR = "1";
23 [d,s] = strtod(STR);
24 assert_checkequal(s, "");
25 assert_checkequal(d, 1);
26 //===============================
27 STR = "string";
28 [d,s] = strtod(STR);
29 assert_checkequal(s, STR);
30 assert_checkequal(d, %nan);
31 //===============================
32 STR1 = "1A";
33 STR2 = "2B";
34 STR3 = "3C";
35 STR4 = "4d";
36 STR = [STR1,STR2;STR3,STR4];
37 [d,s] = strtod(STR);
38 assert_checkequal(s, ["A","B";"C","d"]);
39 assert_checkequal(d, [1,2;3,4]);
40 //===============================
41 [d,s] = strtod("");
42 assert_checkequal(s, "");
43 assert_checkequal(d, %nan);
44 //===============================
45 [d,s] = strtod("  ");
46 assert_checkequal(s, "  ");
47 assert_checkequal(d, %nan);
48 //===============================
49 [d,s] = strtod("  123");
50 assert_checkequal(s, "");
51 assert_checkequal(d, 123);
52 //===============================
53 [d,s] = strtod("  123  ");
54 assert_checkequal(s, "  ");
55 assert_checkequal(d, 123);
56 //===============================
57 [d,s] = strtod("  sdf  ");
58 assert_checkequal(s, "  sdf  ");
59 assert_checkequal(d, %nan);
60 //===============================
61 [d,s] = strtod([]);
62 assert_checkequal(s, "");
63 assert_checkequal(d, %nan);
64 //===============================
65 [d,s] = strtod("-3 sdf");
66 assert_checkequal(s, " sdf");
67 assert_checkequal(d, -3);
68 //===============================
69 [d,s] = strtod("abc -3 sdf");
70 assert_checkequal(s, "abc -3 sdf");
71 assert_checkequal(d, %nan);
72 //===============================
73 [d,s] = strtod("- 3 sdf");
74 assert_checkequal(s, "- 3 sdf");
75 assert_checkequal(d, %nan);
76 //===============================
77 [d,s] = strtod("  -.3 sdf");
78 assert_checkequal(s, " sdf");
79 assert_checkequal(d, -0.3);
80 //===============================
81 [d,s] = strtod("abs .01sdf");
82 assert_checkequal(s, "abs .01sdf");
83 assert_checkequal(d, %nan);
84 //===============================
85 [d,s] = strtod("-.4e-3 sdf");
86 assert_checkequal(s, " sdf");
87 assert_checkequal(d, -.4e-3);
88