IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 1126


Ignore:
Timestamp:
Jun 29, 2004, 1:18:00 PM (22 years ago)
Author:
desonia
Message:

added tests for psListSort and changed testListRemove to match the change
in the psListRemove prototype (returns bool instead of void*).

Location:
trunk/psLib/test/collections
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/test/collections/builddir/tst_psBitSet_01.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psBitSet_02.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psBitSet_03.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psBitSet_04.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psBitSet_05.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psBitSet_06.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psImage.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psList.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psSort_01.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psSort_02.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psSort_03.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psSort_04.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psVector_01.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psVector_02.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/builddir/tst_psVector_03.d

    r1109 r1126  
    33  ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
    44  ../../include/psString.h ../../include/psType.h ../../include/psList.h \
    5   ../../include/psVector.h ../../include/psHash.h \
    6   ../../include/psScalar.h ../../include/psImage.h \
     5  ../../include/psCompare.h ../../include/psVector.h \
     6  ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \
    77  ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
    88  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
  • trunk/psLib/test/collections/tst_psList.c

    r1073 r1126  
    66 *  @author Robert DeSonia, MHPCC
    77 *
    8  *  @version $Revision: 1.11 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-06-23 23:00:15 $
     8 *  @version $Revision: 1.12 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2004-06-29 23:18:00 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    2525static int testListIterator(void);
    2626static int testListFree(void);
     27static int testListSort(void);
    2728
    2829testDescription tests[] = {
     
    3435                              {testListIterator,"494-testListIterator",0},
    3536                              {testListFree,"627-testListFree",0},
     37                              {testListSort,"624-testListSort",0},
    3638                              {NULL}
    3739                          };
     
    439441    //  1. list is NULL.
    440442    psLogMsg(__func__,PS_LOG_INFO,"Following should be an error");
    441     if (psListRemove(list,NULL,PS_LIST_HEAD) != NULL) {
    442         psError(__func__,"psListGet didn't return NULL given a NULL list.");
     443    if (psListRemove(list,NULL,PS_LIST_HEAD)) {
     444        psError(__func__,"psListRemove didn't return false given a NULL list.");
    443445        return 1;
    444446    };
     
    456458
    457459    // 2. which is PS_LIST_HEAD (remove first element of list)
    458     data = psListRemove(list,NULL,PS_LIST_HEAD);
    459     if (data == NULL || *data != 0) {
    460         printListInt(list);
    461         psError(__func__,"Failed to remove PS_LIST_HEAD (%p)",data);
    462         return 1;
    463     }
    464     psFree(data);
     460    data = psListGet(list,PS_LIST_HEAD);
     461    if ( (! psListRemove(list,NULL,PS_LIST_HEAD)) ||
     462            (psListGet(list,PS_LIST_HEAD) == data) ) {
     463        printListInt(list);
     464        psError(__func__,"Failed to remove PS_LIST_HEAD");
     465        return 1;
     466    }
     467
    465468    if (list->size != 14) {
    466469        printListInt(list);
     
    470473
    471474    // 3. which is PS_LIST_TAIL (remove last element of list)
    472     data = psListRemove(list,NULL,PS_LIST_TAIL);
    473     if (data == NULL || *data != 14) {
     475    data = psListGet(list,PS_LIST_TAIL);
     476    if ( (! psListRemove(list,NULL,PS_LIST_TAIL)) ||
     477            (psListGet(list,PS_LIST_TAIL) == data) ) {
    474478        printListInt(list);
    475479        psError(__func__,"Failed to remove PS_LIST_TAIL");
    476480        return 1;
    477481    }
    478     psFree(data);
     482
    479483    if (list->size != 13) {
    480484        printListInt(list);
     
    485489    // 4. which is PS_LIST_NEXT (element right of cursor [which should be head,tail, and neither])
    486490    psListSetIterator(list,PS_LIST_HEAD);
    487     data = psListRemove(list,NULL,PS_LIST_NEXT);
    488     if (data == NULL || *data != 2) {
     491    if (! psListRemove(list,NULL,PS_LIST_NEXT)) {
    489492        printListInt(list);
    490493        psError(__func__,"Failed to remove PS_LIST_NEXT @ PS_LIST_HEAD");
    491494        return 1;
    492495    }
    493     psFree(data);
     496
    494497    if (list->size != 12) {
    495498        printListInt(list);
     
    500503    psListSetIterator(list,PS_LIST_TAIL);
    501504    psLogMsg(__func__,PS_LOG_INFO,"Next message should be an error");
    502     data = psListRemove(list,NULL,PS_LIST_NEXT);
    503     if (data != NULL) {
     505    if (psListRemove(list,NULL,PS_LIST_NEXT)) {
    504506        printListInt(list);
    505507        psError(__func__,"Removed something with PS_LIST_NEXT @ PS_LIST_TAIL");
     
    507509    }
    508510
     511    data = psListGet(list,3);
    509512    psListSetIterator(list,2);
    510     data = psListRemove(list,NULL,PS_LIST_NEXT);
    511     if (data == NULL || *data != 5) {
     513    if ( (!psListRemove(list,NULL,PS_LIST_NEXT)) ||
     514            ( psListGet(list,3) == data) ) {
    512515        printListInt(list);
    513516        psError(__func__,"Failed to remove PS_LIST_NEXT @ which=2");
    514517        return 1;
    515518    }
    516     psFree(data);
     519
    517520    if (list->size != 11) {
    518521        printListInt(list);
     
    524527    psListSetIterator(list,PS_LIST_HEAD);
    525528    psLogMsg(__func__,PS_LOG_INFO,"Next message should be an error");
    526     data = psListRemove(list,NULL,PS_LIST_PREVIOUS);
    527     if (data != NULL) {
     529    if (psListRemove(list,NULL,PS_LIST_PREVIOUS)) {
    528530        printListInt(list);
    529531        psError(__func__,"removed something for PS_LIST_PREVIOUS @ PS_LIST_HEAD");
     
    531533    }
    532534
     535    data = psListGet(list,9);
    533536    psListSetIterator(list,PS_LIST_TAIL);
    534     data = psListRemove(list,NULL,PS_LIST_PREVIOUS);
    535     if (data == NULL || *data != 12) {
     537    if ( (!psListRemove(list,NULL,PS_LIST_PREVIOUS)) ||
     538            (psListGet(list,9) == data) ) {
    536539        printListInt(list);
    537540        psError(__func__,"Failed to remove PS_LIST_PREVIOUS @ PS_LIST_TAIL");
    538541        return 1;
    539542    }
    540     psFree(data);
     543
    541544    if (list->size != 10) {
    542545        printListInt(list);
     
    545548    }
    546549
     550    data = psListGet(list,1);
    547551    psListSetIterator(list,2);
    548     data = psListRemove(list,NULL,PS_LIST_PREVIOUS);
    549     if (data == NULL || *data != 3) {
     552    if ( (!psListRemove(list,NULL,PS_LIST_PREVIOUS)) ||
     553            ( psListGet(list,1) == data) ) {
    550554        printListInt(list);
    551555        psError(__func__,"Failed to remove PS_LIST_PREVIOUS @ which=2");
    552556        return 1;
    553557    }
    554     psFree(data);
     558
    555559    if (list->size != 9) {
    556560        printListInt(list);
     
    561565    // 6. which is PS_LIST_UNKNOWN and data=NULL (error)
    562566    psLogMsg(__func__,PS_LOG_INFO,"Next message should be an error");
    563     data = psListRemove(list,NULL,PS_LIST_UNKNOWN);
    564     if (data != NULL) {
     567    if (psListRemove(list,NULL,PS_LIST_UNKNOWN)) {
    565568        printListInt(list);
    566569        psError(__func__,"removed something for PS_LIST_UNKNOWN with data=NULL");
     
    570573    // 7. which is PS_LIST_UNKNOWN and data=[head,tail,other list items]
    571574    data = psListGet(list,PS_LIST_HEAD);
    572     data = psListRemove(list,data,PS_LIST_UNKNOWN);
    573     if (data == NULL || *data != 1) {
     575    if ( (! psListRemove(list,data,PS_LIST_UNKNOWN)) ||
     576            (psListGet(list,PS_LIST_HEAD) == data) ) {
    574577        printListInt(list);
    575578        psError(__func__,"Failed to remove PS_LIST_UNKNOWN @ PS_LIST_HEAD");
    576579        return 1;
    577580    }
    578     psFree(data);
     581
    579582    if (list->size != 8) {
    580583        printListInt(list);
     
    584587
    585588    data = psListGet(list,PS_LIST_TAIL);
    586     data = psListRemove(list,data,PS_LIST_UNKNOWN);
    587     if (data == NULL || *data != 13) {
     589    if ( (!psListRemove(list,data,PS_LIST_UNKNOWN)) ||
     590            (psListGet(list,PS_LIST_TAIL) == data) ) {
    588591        printListInt(list);
    589592        psError(__func__,"Failed to remove PS_LIST_UNKNOWN @ PS_LIST_TAIL");
    590593        return 1;
    591594    }
    592     psFree(data);
     595
    593596    if (list->size != 7) {
    594597        printListInt(list);
     
    598601
    599602    psListSetIterator(list,PS_LIST_HEAD);
     603
    600604    data = psListGet(list,PS_LIST_NEXT);
    601 
    602     data = psListRemove(list,data,PS_LIST_UNKNOWN);
    603     if (data == NULL || *data != 6) {
     605    if ( (! psListRemove(list,data,PS_LIST_UNKNOWN))||
     606            (psListGet(list,1) == data) ) {
    604607        printListInt(list);
    605608        psError(__func__,"Failed to remove PS_LIST_UNKNOWN @ which=1");
    606609        return 1;
    607610    }
    608     psFree(data);
     611
    609612    if (list->size != 6) {
    610613        printListInt(list);
     
    615618    // 8. which is PS_LIST_UNKNOWN and data!=NULL and data!=any element in list
    616619    psLogMsg(__func__,PS_LOG_INFO,"Next message should be an error");
    617     data = psListRemove(list,data,PS_LIST_UNKNOWN);
    618     if (data != NULL) {
     620    if ( psListRemove(list,data,PS_LIST_UNKNOWN) ) {
    619621        printListInt(list);
    620622        psError(__func__,"removed something for PS_LIST_UNKNOWN with previously removed item");
     
    623625
    624626    // clear out the list
    625     psFree(psListRemove(list,NULL,PS_LIST_HEAD));
    626     psFree(psListRemove(list,NULL,PS_LIST_HEAD));
    627     psFree(psListRemove(list,NULL,PS_LIST_HEAD));
    628     psFree(psListRemove(list,NULL,PS_LIST_HEAD));
    629     psFree(psListRemove(list,NULL,PS_LIST_HEAD));
    630 
    631     data = psListRemove(list,data,PS_LIST_HEAD);
    632     if (data == NULL || *data != 11) {
     627    psListRemove(list,NULL,PS_LIST_HEAD);
     628    psListRemove(list,NULL,PS_LIST_HEAD);
     629    psListRemove(list,NULL,PS_LIST_HEAD);
     630    psListRemove(list,NULL,PS_LIST_HEAD);
     631    psListRemove(list,NULL,PS_LIST_HEAD);
     632
     633    data = psListGet(list,PS_LIST_HEAD);
     634    if ( (! psListRemove(list,data,PS_LIST_HEAD)) ||
     635            (psListGet(list,PS_LIST_HEAD) == data) ) {
    633636        printListInt(list);
    634637        psError(__func__,"Failed to remove last element");
    635638        return 1;
    636639    }
    637     psFree(data);
    638640
    639641    if (list->size != 0) {
     
    964966    return 0;
    965967}
     968
     969int testListSort(void)
     970{
     971    psList* list;
     972
     973    list = psListAlloc(NULL);
     974
     975    for (int lcv=0;lcv<15;lcv++) {
     976        float* data = psAlloc(sizeof(int));
     977        if (lcv < 7) {
     978            *data = 13-lcv*2;
     979        } else {
     980            *data = lcv*2-12;
     981        }
     982        list = psListAdd(list,data,PS_LIST_TAIL);
     983        psFree(data);
     984
     985    }
     986
     987    printf("original list = [");
     988    for (float* iter = psListGet(list,PS_LIST_HEAD);
     989            iter != NULL;
     990            iter = psListGet(list,PS_LIST_NEXT)) {
     991        printf(" %.1f",*iter);
     992    }
     993    printf(" ]\n");
     994
     995    list = psListSort(list,psCompareF32Ptr);
     996
     997    printf("sorted list = [");
     998    for (float* iter = psListGet(list,PS_LIST_HEAD);
     999            iter != NULL;
     1000            iter = psListGet(list,PS_LIST_NEXT)) {
     1001        printf(" %.1f",*iter);
     1002    }
     1003    printf(" ]\n");
     1004
     1005    float* prevValue = psListGet(list,PS_LIST_HEAD);
     1006    for (float* iter = psListGet(list,PS_LIST_NEXT);
     1007            iter != NULL;
     1008            iter = psListGet(list,PS_LIST_NEXT)) {
     1009        if (*prevValue > *iter) {
     1010            psError(__func__,"Hey, the list wasn't sorted!?");
     1011            return 1;
     1012        }
     1013    }
     1014
     1015    list = psListSort(list,psCompareDescendingF32Ptr);
     1016
     1017    printf("descending sort list = [");
     1018    for (float* iter = psListGet(list,PS_LIST_HEAD);
     1019            iter != NULL;
     1020            iter = psListGet(list,PS_LIST_NEXT)) {
     1021        printf(" %.1f",*iter);
     1022    }
     1023    printf(" ]\n");
     1024
     1025    prevValue = psListGet(list,PS_LIST_HEAD);
     1026    for (float* iter = psListGet(list,PS_LIST_NEXT);
     1027            iter != NULL;
     1028            iter = psListGet(list,PS_LIST_NEXT)) {
     1029        if (*prevValue < *iter) {
     1030            psError(__func__,"Hey, the list wasn't sorted!?");
     1031            return 1;
     1032        }
     1033    }
     1034
     1035    psFree(list);
     1036
     1037    /********** OK, now do the same thing with ints. *************/
     1038
     1039    list = psListAlloc(NULL);
     1040
     1041    for (int lcv=0;lcv<15;lcv++) {
     1042        psU32* data = psAlloc(sizeof(int));
     1043        if (lcv < 7) {
     1044            *data = 13-lcv*2;
     1045        } else {
     1046            *data = lcv*2-12;
     1047        }
     1048        list = psListAdd(list,data,PS_LIST_TAIL);
     1049        psFree(data);
     1050
     1051    }
     1052
     1053    printf("original list = [");
     1054    for (psU32* iter = psListGet(list,PS_LIST_HEAD);
     1055            iter != NULL;
     1056            iter = psListGet(list,PS_LIST_NEXT)) {
     1057        printf(" %d",*iter);
     1058    }
     1059    printf(" ]\n");
     1060
     1061    list = psListSort(list,psCompareU32Ptr);
     1062
     1063    printf("sorted list = [");
     1064    for (psU32* iter = psListGet(list,PS_LIST_HEAD);
     1065            iter != NULL;
     1066            iter = psListGet(list,PS_LIST_NEXT)) {
     1067        printf(" %d",*iter);
     1068    }
     1069    printf(" ]\n");
     1070
     1071    psU32* prev = psListGet(list,PS_LIST_HEAD);
     1072    for (psU32* iter = psListGet(list,PS_LIST_NEXT);
     1073            iter != NULL;
     1074            iter = psListGet(list,PS_LIST_NEXT)) {
     1075        if (*prev > *iter) {
     1076            psError(__func__,"Hey, the list wasn't sorted!?");
     1077            return 1;
     1078        }
     1079    }
     1080
     1081    list = psListSort(list,psCompareDescendingU32Ptr);
     1082
     1083    printf("descending sort list = [");
     1084    for (psU32* iter = psListGet(list,PS_LIST_HEAD);
     1085            iter != NULL;
     1086            iter = psListGet(list,PS_LIST_NEXT)) {
     1087        printf(" %d",*iter);
     1088    }
     1089    printf(" ]\n");
     1090
     1091    prev = psListGet(list,PS_LIST_HEAD);
     1092    for (psU32* iter = psListGet(list,PS_LIST_NEXT);
     1093            iter != NULL;
     1094            iter = psListGet(list,PS_LIST_NEXT)) {
     1095        if (*prev < *iter) {
     1096            psError(__func__,"Hey, the list wasn't sorted!?");
     1097            return 1;
     1098        }
     1099    }
     1100
     1101    psFree(list);
     1102
     1103
     1104    return 0;
     1105}
Note: See TracChangeset for help on using the changeset viewer.