Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/ato.cfa

    r33807a1e r200fcb3  
    1010// Created On       : Thu Feb  4 08:10:57 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Mar 15 17:58:35 2024
    13 // Update Count     : 145
     12// Last Modified On : Tue Dec  4 21:33:53 2018
     13// Update Count     : 92
    1414//
    1515
     
    1818
    1919int main( void ) {
    20         // ato
    21 
    2220        const char * sptr = "-123";
    2321        int i = ato( sptr );
     
    3432        sout | uli | sptr;
    3533
    36         sptr = " -123 ";                                                                        // spaces allowed
     34        sptr = "-123";
    3735        long long int lli = ato( sptr );
    3836        sout | lli | sptr;
    39         sptr = " 123 ";                                                                         // spaces allowed
     37        sptr = "123";
    4038        unsigned long long int ulli = ato( sptr );
    4139        sout | ulli | sptr;
     
    4745        double d = ato( sptr );
    4846        sout | d | sptr;
    49         sptr = " -123.45678901234567890123456789 ";                     // spaces allowed
     47        sptr = "-123.45678901234567890123456789";
    5048        long double ld = ato( sptr );
    5149        sout | ld | sptr;
     
    6058        long double _Complex ldc = ato( sptr );
    6159        sout | ldc | sptr;
    62         sptr = " 123.45678901234 -123.4567890i ";                       // spaces allowed
     60        sptr = "123.45678901234-123.4567890i";
    6361        long double _Complex ldc2 = ato( sptr );
    6462        sout | ldc2 | sptr;
    6563
    66         // strto
    6764
    6865        sptr = "-123";
    69         i = strto( sptr, 0p, 10 );
     66        i = strto( sptr, 0, 10 );
    7067        sout | i | sptr;
    7168        sptr = "123";
    72         ui = strto( sptr, 0p, 10 );
     69        ui = strto( sptr, 0, 10 );
    7370        sout | ui | sptr;
    7471
    7572        sptr = "-123";
    76         li = strto( sptr, 0p, 10 );
     73        li = strto( sptr, 0, 10 );
    7774        sout | li | sptr;
    7875        sptr = "123";
    79         uli = strto( sptr, 0p, 10 );
     76        uli = strto( sptr, 0, 10 );
    8077        sout | uli | sptr;
    8178
    82         sptr = " -123 ";                                                                        // spaces allowed
    83         lli = strto( sptr, 0p, 10 );
     79        sptr = "-123";
     80        lli = strto( sptr, 0, 10 );
    8481        sout | lli | sptr;
    85         sptr = " 123 ";                                                                         // spaces allowed
    86         ulli = strto( sptr, 0p, 10 );
     82        sptr = "123";
     83        ulli = strto( sptr, 0, 10 );
    8784        sout | ulli | sptr;
    8885
    8986        sptr = "-123.456";
    90         f = strto( sptr, 0p );
     87        f = strto( sptr, 0 );
    9188        sout | f | sptr;
    9289        sptr = "-123.4567890123456";
    93         d = strto( sptr, 0p );
     90        d = strto( sptr, 0 );
    9491        sout | d | sptr;
    95         sptr = " -123.45678901234567890123456789 ";                     // spaces allowed
    96         ld = strto( sptr, 0p );
     92        sptr = "-123.45678901234567890123456789";
     93        ld = strto( sptr, 0 );
    9794        sout | ld | sptr;
    9895
    9996        sptr = "-123.456-123.456i";
    100         fc = strto( sptr, 0p );
     97        fc = strto( sptr, 0 );
    10198        sout | fc | sptr;
     99
     100        char * eptr = 0;
     101        // sptr = "2fred";
     102        // fc = strto( sptr, &eptr );
     103        // sout | fc | sptr | eptr;
     104
     105        sptr = "2  3";
     106        fc = strto( sptr, &eptr );
     107        sout | fc | sptr | eptr;
     108
    102109        sptr = "-123.4567890123456+123.4567890123456i";
    103         dc = strto( sptr, 0p );
     110        dc = strto( sptr, 0 );
    104111        sout | dc | sptr;
    105112        sptr = "123.45678901234567890123456789-123.45678901234567890123456789i";
    106         ldc = strto( sptr, 0p );
    107         sout | ldc | sptr;
    108         sptr = " 123.45678901234 -123.4567890i ";                       // spaces allowed
    109         ldc2 = strto( sptr, 0p );
    110         sout | ldc2 | sptr;
    111 
    112         sptr = "2.0fred";
    113         char * eptr = 0p;
    114         errno = 0;                                                                                      // reset
    115         f = strto( sptr, &eptr );
    116         if ( errno == ERANGE ) sout | "out of range";
    117         if ( eptr == sptr ||                                                            // conversion failed, no characters generated
    118                  *eptr != '\0' ) sout | "invalid argument" | sptr; // not at end of str ?
    119         else assert( false );
    120 
    121         sptr = "2  3x";
    122         eptr = 0p;
    123         errno = 0;                                                                                      // reset
    124         fc = strto( sptr, &eptr );
    125         if ( errno == ERANGE ) sout | "out of range";
    126         if ( eptr == sptr ||                                                            // conversion failed, no characters generated
    127                  *eptr != '\0' ) sout | "invalid argument" | sptr; // not at end of str ?
    128         else assert( false );
    129 
    130         // convert
    131 
    132         sptr = "-123";
    133         i = convert( sptr );
    134         sout | i | sptr;
    135         sptr = "123";
    136         ui = convert( sptr );
    137         sout | ui | sptr;
    138 
    139         sptr = "-123";
    140         li = convert( sptr );
    141         sout | li | sptr;
    142         sptr = "123";
    143         uli = convert( sptr );
    144         sout | uli | sptr;
    145 
    146         sptr = " -123 ";                                                                        // spaces allowed
    147         lli = convert( sptr );
    148         sout | lli | sptr;
    149         sptr = " 123 ";                                                                         // spaces allowed
    150         ulli = convert( sptr );
    151         sout | ulli | sptr;
    152 
    153         sptr = "-123.456";
    154         f = convert( sptr );
    155         sout | f | sptr;
    156         sptr = "-123.4567890123456";
    157         d = convert( sptr );
    158         sout | d | sptr;
    159         sptr = " -123.45678901234567890123456789 ";                     // spaces allowed
    160         ld = convert( sptr );
    161         sout | ld | sptr;
    162 
    163         sptr = "-123.456-123.456i";
    164         fc = convert( sptr );
    165         sout | fc | sptr;
    166         sptr = "-123.4567890123456+123.4567890123456i";
    167         dc = convert( sptr );
    168         sout | dc | sptr;
    169         sptr = "123.45678901234567890123456789-123.45678901234567890123456789i";
    170         ldc = convert( sptr );
     113        ldc = strto( sptr, 0 );
    171114        sout | ldc | sptr;
    172115        sptr = "123.45678901234-123.4567890i";
    173         ldc2 = convert( sptr );
     116        ldc2 = strto( sptr, 0 );
    174117        sout | ldc2 | sptr;
    175 
    176         sptr = "2.0fred";
    177         try {
    178                 f = convert( sptr );
    179                 assert( false );
    180         } catch( invalid_argument * ) {
    181                 sout | "invalid argument" | sptr;
    182         } // try
    183 
    184         sptr = "2  3x";
    185         try {
    186                 fc = convert( sptr );
    187                 assert( false );
    188         } catch( invalid_argument * ) {
    189                 sout | "invalid argument" | sptr;
    190         } // try
    191118} // main
    192119
Note: See TracChangeset for help on using the changeset viewer.