1
/* Test of sprintf(), float version, nonfinite numbers.
2
$Id: sprintf_flt-nan.c,v 1.1 2007/02/18 13:46:34 dmix Exp $ */
9
PROGMEM static const struct sprfu_s {
18
{ "%e", { 0x7f800000 }, "inf" },
19
{ "%e", { 0xff800000 }, "-inf" },
20
{ "%f", { 0x7f800000 }, "inf" },
21
{ "%G", { 0xff800000 }, "-INF" },
23
{ "%e", { 0x7f800001 }, "nan" },
24
{ "% e", { 0x7f800001 }, " nan" },
25
{ "%+e", { 0x7f800001 }, "+nan" },
26
{ "%E", { 0x7f800001 }, "NAN" },
27
{ "%5e", { 0x7f800001 }, " nan" },
28
{ "%+5e", { 0x7f800001 }, " +nan" },
29
{ "%05e", { 0x7f800001 }, " nan" },
30
{ "%-5e", { 0x7f800001 }, "nan " },
32
{ "%e", { 0xff800001 }, "nan" },
33
{ "% e", { 0xff800001 }, " nan" },
34
{ "%+e", { 0xff800001 }, "+nan" },
35
{ "%E", { 0xff800001 }, "NAN" },
36
{ "%5e", { 0xff800001 }, " nan" },
37
{ "%+5e", { 0xff800001 }, " +nan" },
38
{ "%05e", { 0xff800001 }, " nan" },
39
{ "%-5e", { 0xff800001 }, "nan " },
41
{ "%e", { 0x7fffffff }, "nan" },
42
{ "%e", { 0xffffffff }, "nan" },
43
{ "%e", { 0x7fc00000 }, "nan" },
44
{ "%e", { 0xffc00000 }, "nan" },
46
{ "%f", { 0x7f800001 }, "nan" },
47
{ "%5F", { 0x7f800001 }, " NAN" },
48
{ "%g", { 0x7f800001 }, "nan" },
49
{ "%5G", { 0x7f800001 }, " NAN" },
53
# define strlen_P strlen
56
void run_sprf (const struct sprfu_s *pt, int testno)
63
n = sprintf_P (s, pt->fmt, pgm_read_dword (& pt->val));
65
n = sprintf (s, pt->fmt, pt->val.fl);
67
if (n != (int)strlen_P (pt->pattern))
69
else if (strcmp_P (s, pt->pattern))
74
printf ("\ntestno %3d: expect: %3d, \"%s\","
75
"\n output: %3d, \"%s\"\n",
76
testno, strlen(pt->pattern), pt->pattern, n, s);
77
exit (code < 256 ? testno : 255);
87
for (i = 0; (unsigned)i != sizeof(t)/sizeof(t[0]); i++)