Changeset 486caad for tests/ato.cfa


Ignore:
Timestamp:
Mar 25, 2024, 7:15:30 PM (22 months ago)
Author:
JiadaL <j82liang@…>
Branches:
master
Children:
d734fa1
Parents:
df78cce (diff), bf050c5 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/ato.cfa

    rdf78cce r486caad  
    1010// Created On       : Thu Feb  4 08:10:57 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec  4 21:33:53 2018
    13 // Update Count     : 92
     12// Last Modified On : Fri Mar 15 17:58:35 2024
     13// Update Count     : 145
    1414//
    1515
     
    1818
    1919int main( void ) {
     20        // ato
     21
    2022        const char * sptr = "-123";
    2123        int i = ato( sptr );
     
    3234        sout | uli | sptr;
    3335
    34         sptr = "-123";
     36        sptr = " -123 ";                                                                        // spaces allowed
    3537        long long int lli = ato( sptr );
    3638        sout | lli | sptr;
    37         sptr = "123";
     39        sptr = " 123 ";                                                                         // spaces allowed
    3840        unsigned long long int ulli = ato( sptr );
    3941        sout | ulli | sptr;
     
    4547        double d = ato( sptr );
    4648        sout | d | sptr;
    47         sptr = "-123.45678901234567890123456789";
     49        sptr = " -123.45678901234567890123456789 ";                     // spaces allowed
    4850        long double ld = ato( sptr );
    4951        sout | ld | sptr;
     
    5860        long double _Complex ldc = ato( sptr );
    5961        sout | ldc | sptr;
    60         sptr = "123.45678901234-123.4567890i";
     62        sptr = " 123.45678901234 -123.4567890i ";                       // spaces allowed
    6163        long double _Complex ldc2 = ato( sptr );
    6264        sout | ldc2 | sptr;
    6365
     66        // strto
    6467
    6568        sptr = "-123";
    66         i = strto( sptr, 0, 10 );
     69        i = strto( sptr, 0p, 10 );
    6770        sout | i | sptr;
    6871        sptr = "123";
    69         ui = strto( sptr, 0, 10 );
     72        ui = strto( sptr, 0p, 10 );
    7073        sout | ui | sptr;
    7174
    7275        sptr = "-123";
    73         li = strto( sptr, 0, 10 );
     76        li = strto( sptr, 0p, 10 );
    7477        sout | li | sptr;
    7578        sptr = "123";
    76         uli = strto( sptr, 0, 10 );
     79        uli = strto( sptr, 0p, 10 );
    7780        sout | uli | sptr;
    7881
    79         sptr = "-123";
    80         lli = strto( sptr, 0, 10 );
     82        sptr = " -123 ";                                                                        // spaces allowed
     83        lli = strto( sptr, 0p, 10 );
    8184        sout | lli | sptr;
    82         sptr = "123";
    83         ulli = strto( sptr, 0, 10 );
     85        sptr = " 123 ";                                                                         // spaces allowed
     86        ulli = strto( sptr, 0p, 10 );
    8487        sout | ulli | sptr;
    8588
    8689        sptr = "-123.456";
    87         f = strto( sptr, 0 );
     90        f = strto( sptr, 0p );
    8891        sout | f | sptr;
    8992        sptr = "-123.4567890123456";
    90         d = strto( sptr, 0 );
     93        d = strto( sptr, 0p );
    9194        sout | d | sptr;
    92         sptr = "-123.45678901234567890123456789";
    93         ld = strto( sptr, 0 );
     95        sptr = " -123.45678901234567890123456789 ";                     // spaces allowed
     96        ld = strto( sptr, 0p );
    9497        sout | ld | sptr;
    9598
    9699        sptr = "-123.456-123.456i";
    97         fc = strto( sptr, 0 );
     100        fc = strto( sptr, 0p );
    98101        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 
    109102        sptr = "-123.4567890123456+123.4567890123456i";
    110         dc = strto( sptr, 0 );
     103        dc = strto( sptr, 0p );
    111104        sout | dc | sptr;
    112105        sptr = "123.45678901234567890123456789-123.45678901234567890123456789i";
    113         ldc = strto( sptr, 0 );
     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 );
    114171        sout | ldc | sptr;
    115172        sptr = "123.45678901234-123.4567890i";
    116         ldc2 = strto( sptr, 0 );
     173        ldc2 = convert( sptr );
    117174        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
    118191} // main
    119192
Note: See TracChangeset for help on using the changeset viewer.