Ignore:
Timestamp:
Dec 27, 2020, 5:59:17 PM (12 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
arm-eh, jacob/cs343-translation, master, new-ast-unique-expr
Children:
1e6f632
Parents:
a3a76ea
Message:

code review extended collection testing and add a few more tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/collections/queue.cfa

    ra3a76ea r62a7cc0  
    3333        }
    3434
    35         sout | head(fred).i | nl;
    36         sout | tail(fred).i | nl;
     35        sout | head( fred ).i | tail( fred ).i | nl;
    3736
    3837        for ( QueueIter(Fred) iter = { fred }; iter >> f; ) {
     
    5453        }
    5554
    56         Fred * front = new( -1 );
    57         addHead( fred, *front );
    58         sout | succ( fred, front )->i | nl;
    59         remove( fred, *front );
    60         delete( front );
    61 
    62         Fred & end = dropTail( fred );
    63         delete( &end );
    64 
    65         for ( over( fredIter, fred ); fredIter >> f; ) {
    66                 sout | f.i | ' ';
    67         }
    68         sout | nl;
    69 
    70         for ( over( fredIter, fred ); fredIter >> f; ) {
    71                 delete( &f );
    72         }
    73 
    74         Queue(Fred) fred0;
    75         Fred * middle;
    76         for ( i; 10 ) {
    77                 if( i == 5) {
    78                         middle = new( i );
    79                         add( fred0, *middle );
    80                         continue;
     55        Fred * head = new( -1 ), tail = { -2 };
     56        addHead( fred, *head );
     57        addTail( fred, tail );
     58
     59        sout | head( fred ).i | succ( fred, head )->i | tail( fred ).i | nl;
     60        for ( over( fredIter, fred ); fredIter >> f; ) {
     61                sout | f.i | ' ';
     62        }
     63        sout | nl;
     64
     65        remove( fred, *head );
     66        remove( fred, tail );
     67        delete( head );
     68        delete( &dropTail( fred ) );
     69
     70        for ( over( fredIter, fred ); fredIter >> f; ) {
     71                sout | f.i | ' ';
     72        }
     73        sout | nl;
     74
     75        for ( i; 5 ) {
     76                delete( &dropTail( fred ) );
     77        }
     78        for ( over( fredIter, fred ); fredIter >> f; ) {
     79                sout | f.i | ' ';
     80        }
     81        sout | nl;
     82
     83        for ( over( fredIter, fred ); fredIter >> f; ) {
     84                delete( &remove( fred, f ) );
     85        }
     86        for ( over( fredIter, fred ); fredIter >> f; ) {
     87                sout | f.i | ' ';
     88        }
     89        sout | "empty" | nl;
     90
     91        Fred & middle;
     92        for ( i; 10 ) {
     93                add( fred, *new( i ) );
     94                if ( i == 4 ) {
     95                        &middle = &tail( fred );
    8196                }
    82                 add( fred0, *new( i ) );
    83         }
    84 
    85         for ( QueueIter(Fred) iter = { fred0 }; iter >> f; ) {
     97        }
     98        for ( QueueIter(Fred) iter = { fred }; iter >> f; ) {
    8699                sout | f.i | ' ';
    87100        }
     
    90103        Queue(Fred) fred2;
    91104
    92         split( fred2, fred0, *middle);
    93 
    94         for ( over( fredIter, fred0 ); fredIter >> f; ) {
     105        split( fred2, fred, middle );
     106
     107        for ( over( fredIter, fred ); fredIter >> f; ) {
    95108                sout | f.i | ' ';
    96109        }
     
    102115        sout | nl;
    103116
    104         transfer( fred0, fred2);
    105 
    106         for ( over( fredIter, fred0 ); fredIter >> f; ) {
    107                 sout | f.i | ' ';
    108         }
    109         sout | nl;
    110 
    111         for ( over( fredIter, fred0 ); fredIter >> f; ) {
     117        transfer( fred, fred2 );
     118
     119        for ( over( fredIter, fred ); fredIter >> f; ) {
     120                sout | f.i | ' ';
     121        }
     122        sout | nl;
     123
     124        for ( over( fredIter, fred ); fredIter >> f; ) {
    112125                delete( &f );
    113126        }
     
    122135        void ?{}( Mary & mary, int p ) with( mary ) {
    123136                ((Fred &)mary){ p };
    124                 j = i = p;
    125         }
    126 
     137                j = p;
     138        }
    127139        Mary *& Next( Mary * n ) {
    128140                return (Mary *)Next( (Fred *)n );
     
    142154        }
    143155
     156        sout | head( mary ).i | tail( mary ).i | nl;
     157
    144158        for ( QueueIter(Mary) iter = { mary }; iter >> m; ) {
    145159                sout | m.i | m.j | ' ';
     
    159173                add( mary, *new( 2 * i + 1 ) );
    160174        }
    161         for ( over( maryIter, mary ); maryIter >> m; ) {
    162                 sout | m.i | m.j | ' ';
    163         }
    164         sout | nl;
    165 
     175
     176        Mary * head = new( -1 ), tail = { -1 };
     177        addHead( mary, *head );
     178        addTail( mary, tail );
     179        sout | head( mary ).i | succ( mary, head )->i | tail( mary ).i | nl;
     180        remove( mary, *head );
     181        remove( mary, tail );
     182        delete( (Mary *)head );
     183        delete( &dropTail( mary ) );
     184
     185        for ( over( maryIter, mary ); maryIter >> m; ) {
     186                sout | m.i | m.j | ' ';
     187        }
     188        sout | nl;
     189
     190        for ( over( maryIter, mary ); maryIter >> m; ) {
     191                delete( &remove( mary, m ) );
     192        }
     193
     194        Mary & middle;
     195        for ( i; 10 ) {
     196                add( mary, *new( i ) );
     197                if ( i == 4 ) {
     198                        &middle = &tail( mary );
     199                }
     200        }
     201        for ( QueueIter(Mary) iter = { mary }; iter >> m; ) {
     202                sout | m.i | m.j | ' ';
     203        }
     204        sout | nl;
     205
     206        Queue(Mary) mary2;
     207
     208        split( mary2, mary, middle );
     209
     210        for ( over( maryIter, mary ); maryIter >> m; ) {
     211                sout | m.i | m.j | ' ';
     212        }
     213        sout | nl;
     214        for ( over( maryIter, mary2 ); maryIter >> m; ) {
     215                sout | m.i | m.j | ' ';
     216        }
     217        sout | nl;
     218
     219        transfer( mary, mary2 );
     220
     221        for ( over( maryIter, mary ); maryIter >> m; ) {
     222                sout | m.i | m.j | ' ';
     223        }
     224        sout | nl;
    166225        for ( over( maryIter, mary ); maryIter >> m; ) {
    167226                delete( &m );
Note: See TracChangeset for help on using the changeset viewer.