* Bug #14742 fixed: `mprintf`, `msprintf` a non finite number displayed nothing.
[scilab.git] / scilab / modules / output_stream / tests / nonreg_tests / bug_14742.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2020 - ESI Group - Clement DAVID
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 14742 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=14742
14 //
15 // <-- ENGLISH IMPOSED -->
16
17 // <-- Short Description -->
18 // Wrong display of Inf or Nan
19 //
20
21 assert_checkequal(" Nan", msprintf('%4.1f',%nan));
22 assert_checkequal(" Inf", msprintf('%4.1f',%inf));
23 assert_checkequal("-Inf", msprintf('%4.1f',-%inf));
24
25 assert_checkequal("Nan ", msprintf('%-4.1f',%nan));
26 assert_checkequal("Inf ", msprintf('%-4.1f',%inf));
27 assert_checkequal("-Inf", msprintf('%-4.1f',-%inf));
28
29 assert_checkequal("Nan", msprintf('%1.1f',%nan));
30 assert_checkequal("Inf", msprintf('%1.1f',%inf));
31 assert_checkequal("-Inf", msprintf('%1.1f',-%inf));
32
33 assert_checkequal("Nan", msprintf('%-1.1f',%nan));
34 assert_checkequal("Inf", msprintf('%-1.1f',%inf));
35 assert_checkequal("-Inf", msprintf('%-1.1f',-%inf));
36
37 F="%10.3f";
38 assert_checkequal("     3.000       Nan     5.000", msprintf(F+F+F, [3,%nan,5]));
39 assert_checkequal("     3.000       Inf     5.000", msprintf(F+F+F, [3,%inf,5]));
40 assert_checkequal("     3.000      -Inf     5.000", msprintf(F+F+F, [3,-%inf,5]));
41
42 F="%-10.3f";
43 assert_checkequal("3.000     Nan       5.000     ", msprintf(F+F+F, [3,%nan,5]));
44 assert_checkequal("3.000     Inf       5.000     ", msprintf(F+F+F, [3,%inf,5]));
45 assert_checkequal("3.000     -Inf      5.000     ", msprintf(F+F+F, [3,-%inf,5]));
46
47
48 assert_checkequal(["a = Inf";"b = Inf"], msprintf("a = %f\nb = %f", %inf, %inf));
49 assert_checkequal(["a = Nan";"b = Nan"], msprintf("a = %f\nb = %f", %nan, %nan));
50
51 assert_checkequal(["a = Inf";"b = Inf"], msprintf("a = %f\nb = %f\n", %inf, %inf));
52 assert_checkequal(["a = Nan";"b = Nan"], msprintf("a = %f\nb = %f\n", %nan, %nan));
53
54 assert_checkequal("Inffoo", msprintf("%ffoo\n", %inf));
55 assert_checkequal("Nanfoo", msprintf("%ffoo\n", %nan));
56
57 assert_checkequal("fooInf", msprintf("foo%f\n", %inf));
58 assert_checkequal("fooNan", msprintf("foo%f\n", %nan));
59
60 assert_checkequal("fooInfbar", msprintf("foo%fbar\n", %inf));
61 assert_checkequal("fooNanbar", msprintf("foo%fbar\n", %nan));
62