Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libm/test/convert.c')
-rw-r--r--newlib/libm/test/convert.c366
1 files changed, 0 insertions, 366 deletions
diff --git a/newlib/libm/test/convert.c b/newlib/libm/test/convert.c
deleted file mode 100644
index 51bddfdfe..000000000
--- a/newlib/libm/test/convert.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/* Test conversions */
-
-#include "test.h"
-#include <stdlib.h>
-#include <errno.h>
-
-static char buffer[500];
-
-extern double_type doubles[];
-
-/* TEST ATOF ATOFF */
-
-double_type *pd = doubles;
-
-void
-_DEFUN_VOID(test_strtod)
-{
- char *tail;
- double v;
- /* On average we'll loose 1/2 a bit, so the test is for within 1 bit */
- v = strtod(pd->string, &tail);
- test_mok(v, pd->value, 64);
- test_iok(tail - pd->string, pd->endscan);
-}
-
-void
-_DEFUN_VOID(test_strtodf)
-{
- char *tail;
- double v;
- /* On average we'll loose 1/2 a bit, so the test is for within 1 bit */
- v = strtodf(pd->string, &tail);
- test_mok(v, pd->value, 32);
- test_iok(tail - pd->string, pd->endscan);
-}
-
-void
-_DEFUN_VOID(test_atof)
-{
- test_mok(atof(pd->string), pd->value, 64);
-}
-
-void
-_DEFUN_VOID(test_atoff)
-{
- test_mok(atoff(pd->string), pd->value, 32);
-}
-
-
-static
-void
-_DEFUN(iterate,(func, name),
- void _EXFUN((*func),(void)) _AND
- char *name)
-{
-
- newfunc(name);
- pd = doubles;
- while (pd->string) {
- line(pd->line);
- func();
- pd++;
- }
-}
-
-
-extern int_type ints[];
-
-int_type *p = ints;
-
-
-static void
-_DEFUN(int_iterate,(func, name),
- void (*func)() _AND
- char *name)
-{
- newfunc(name);
-
- p = ints;
- while (p->string) {
- line(p->line);
- errno = 0;
- func();
- p++;
- }
-}
-
-void
-_DEFUN(test_strtol_base,(base, pi, string),
- int base _AND
- int_scan_type *pi _AND
- char *string)
-{
- long r;
- char *ptr;
- errno = 0;
- r = strtol(string, &ptr, base);
- test_iok(r, pi->value);
- test_eok(errno, pi->errno_val);
- test_iok(ptr - string, pi->end);
-}
-
-void
-_DEFUN_VOID(test_strtol)
-{
- test_strtol_base(8,&(p->octal), p->string);
- test_strtol_base(10,&(p->decimal), p->string);
- test_strtol_base(16, &(p->hex), p->string);
- test_strtol_base(0, &(p->normal), p->string);
- test_strtol_base(26, &(p->alphabetical), p->string);
-}
-
-void
-_DEFUN_VOID(test_atoi)
-{
- test_iok(atoi(p->string), p->decimal.value);
- test_eok(errno, p->decimal.errno_val);
-}
-
-void
-_DEFUN_VOID(test_atol)
-{
- test_iok(atol(p->string), p->decimal.value);
- test_eok(errno, p->decimal.errno_val);
-}
-
-/* test ECVT and friends */
-extern ddouble_type ddoubles[];
-ddouble_type *pdd;
-void
-_DEFUN_VOID(test_ecvtbuf)
-{
- int a2,a3;
- char *s;
- s = ecvtbuf(pdd->value, pdd->e1, &a2, &a3, buffer);
-
- test_sok(s,pdd->estring);
- test_iok(pdd->e2,a2);
- test_iok(pdd->e3,a3);
-}
-
-void
-_DEFUN_VOID(test_ecvt)
-{
- int a2,a3;
- char *s;
- s = ecvt(pdd->value, pdd->e1, &a2, &a3);
-
- test_sok(s,pdd->estring);
- test_iok(pdd->e2,a2);
- test_iok(pdd->e3,a3);
-
- s = ecvtf(pdd->value, pdd->e1, &a2, &a3);
-
- test_sok(s,pdd->estring);
- test_iok(pdd->e2,a2);
- test_iok(pdd->e3,a3);
-}
-
-void
-_DEFUN_VOID(test_fcvtbuf)
-{
- int a2,a3;
- char *s;
- s = fcvtbuf(pdd->value, pdd->f1, &a2, &a3, buffer);
-
- test_scok(s,pdd->fstring,10);
- test_iok(pdd->f2,a2);
- test_iok(pdd->f3,a3);
-}
-
-void
-_DEFUN_VOID(test_gcvt)
-{
- char *s = gcvt(pdd->value, pdd->g1, buffer);
- test_scok(s, pdd->gstring, 9);
-
- s = gcvtf(pdd->value, pdd->g1, buffer);
- test_scok(s, pdd->gstring, 9);
-
-}
-
-void
-_DEFUN_VOID(test_fcvt)
-{
- int a2,a3;
- char *sd;
- char *sf;
- double v1;
- double v2;
- sd = fcvt(pdd->value, pdd->f1, &a2, &a3);
-
- test_scok(sd,pdd->fstring,10);
- test_iok(pdd->f2,a2);
- test_iok(pdd->f3,a3);
-
- /* Test the float version by converting and inspecting the numbers 3
- after reconverting */
- sf = fcvtf(pdd->value, pdd->f1, &a2, &a3);
- sscanf(sd, "%lg", &v1);
- sscanf(sf, "%lg", &v2);
- test_mok(v1, v2,32);
- test_iok(pdd->f2,a2);
- test_iok(pdd->f3,a3);
-}
-
-static void
-
-_DEFUN(diterate,(func, name),
- void (*func)() _AND
- char *name)
-{
- newfunc(name);
-
- pdd = ddoubles;
- while (pdd->estring) {
- line(pdd->line);
- errno = 0;
- func();
- pdd++;
- }
-}
-
-
-void
-_DEFUN_VOID(deltest)
-{
- newfunc("rounding");
- line(1);
- sprintf(buffer,"%.2f", 9.999);
- test_sok(buffer,"10.00");
- line(2);
- sprintf(buffer,"%.2g", 1.0);
- test_sok(buffer,"1");
- line(3);
- sprintf(buffer,"%.2g", 1.2e-6);
- test_sok(buffer,"1.2e-06");
- line(4);
- sprintf(buffer,"%.0g", 1.0);
- test_sok(buffer,"1");
- line(5);
- sprintf(buffer,"%.0e",1e1);
- test_sok(buffer,"1e+01");
- line(6);
- sprintf(buffer, "%f", 12.3456789);
- test_sok(buffer, "12.345679");
- line(7);
- sprintf(buffer, "%6.3f", 12.3456789);
- test_sok(buffer, "12.346");
- line(8);
- sprintf(buffer,"%.0f", 12.3456789);
- test_sok(buffer,"12");
-}
-
-/* Most of what sprint does is tested with the tests of
- fcvt/ecvt/gcvt, but here are some more */
-void
-_DEFUN_VOID(test_sprint)
-{
- extern sprint_double_type sprint_doubles[];
- sprint_double_type *s = sprint_doubles;
- extern sprint_int_type sprint_ints[];
- sprint_int_type *si = sprint_ints;
-
-
- newfunc( "sprintf");
-
-
- while (s->line)
- {
- line( s->line);
- sprintf(buffer, s->format_string, s->value);
- test_scok(buffer, s->result, 12); /* Only check the first 12 digs,
- other stuff is random */
- s++;
- }
-
- while (si->line)
- {
- line( si->line);
- sprintf(buffer, si->format_string, si->value);
- test_sok(buffer, si->result);
- si++;
- }
-}
-
-/* Scanf calls strtod etc tested elsewhere, but also has some pattern matching skills */
-void
-_DEFUN_VOID(test_scan)
-{
- int i,j;
- extern sprint_double_type sprint_doubles[];
- sprint_double_type *s = sprint_doubles;
- extern sprint_int_type sprint_ints[];
- sprint_int_type *si = sprint_ints;
-
- newfunc( "scanf");
-
- /* Test scanf by converting all the numbers in the sprint vectors
- to and from their source and making sure nothing breaks */
-
- while (s->line)
- {
-
- double d0,d1;
- line( s->line);
- sscanf(s->result, "%lg", &d0);
- sprintf(buffer, "%20.17e", d0);
- sscanf(buffer, "%lg", &d1);
- test_mok(d0,d1, 64);
- s++;
- }
-
- /* And integers too */
- while (si->line)
- {
-
- long d0,d1;
-
- line(si->line);
- sscanf(si->result, "%d", &d0);
- sprintf(buffer, "%d", d0);
- sscanf(buffer, "%d", &d1);
- test_iok(d0,d1);
- si++;
- }
-
- /* And the string matching */
-
- sscanf(" 9","%d", &i);
- test_iok(i, 9);
- sscanf("foo bar 123 zap 456","foo bar %d zap %d", &i, &j);
- test_iok(i, 123);
- test_iok(j, 456);
-
- sscanf("magicXYZZYfoobar","magic%[XYZ]", buffer);
- test_sok("XYZZY", buffer);
- sscanf("magicXYZZYfoobar","%[^XYZ]", buffer);
- test_sok("magic", buffer);
-}
-
-void
-_DEFUN_VOID(test_cvt)
-{
- deltest();
-
- diterate(test_fcvtbuf,"fcvtbuf");
- diterate(test_fcvt,"fcvt/fcvtf");
-
- diterate(test_gcvt,"gcvt/gcvtf");
- diterate(test_ecvtbuf,"ecvtbuf");
- diterate(test_ecvt,"ecvt/ecvtf");
-
- iterate(test_strtod, "strtod");
-
- test_scan();
- test_sprint();
- iterate(test_atof, "atof");
- iterate(test_atoff, "atoff");
-
- iterate(test_strtodf, "strtodf");
-
- int_iterate(test_atoi,"atoi");
- int_iterate(test_atol,"atol");
- int_iterate(test_strtol, "strtol");
-}