Changeset 1126
- Timestamp:
- Jun 29, 2004, 1:18:00 PM (22 years ago)
- Location:
- trunk/psLib/test/collections
- Files:
-
- 16 edited
-
builddir/tst_psBitSet_01.d (modified) (1 diff)
-
builddir/tst_psBitSet_02.d (modified) (1 diff)
-
builddir/tst_psBitSet_03.d (modified) (1 diff)
-
builddir/tst_psBitSet_04.d (modified) (1 diff)
-
builddir/tst_psBitSet_05.d (modified) (1 diff)
-
builddir/tst_psBitSet_06.d (modified) (1 diff)
-
builddir/tst_psImage.d (modified) (1 diff)
-
builddir/tst_psList.d (modified) (1 diff)
-
builddir/tst_psSort_01.d (modified) (1 diff)
-
builddir/tst_psSort_02.d (modified) (1 diff)
-
builddir/tst_psSort_03.d (modified) (1 diff)
-
builddir/tst_psSort_04.d (modified) (1 diff)
-
builddir/tst_psVector_01.d (modified) (1 diff)
-
builddir/tst_psVector_02.d (modified) (1 diff)
-
builddir/tst_psVector_03.d (modified) (1 diff)
-
tst_psList.c (modified) (19 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/test/collections/builddir/tst_psBitSet_01.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psBitSet_02.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psBitSet_03.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psBitSet_04.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psBitSet_05.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psBitSet_06.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psImage.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psList.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psSort_01.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psSort_02.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psSort_03.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psSort_04.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psVector_01.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psVector_02.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/builddir/tst_psVector_03.d
r1109 r1126 3 3 ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \ 4 4 ../../include/psString.h ../../include/psType.h ../../include/psList.h \ 5 ../../include/ps Vector.h ../../include/psHash.h \6 ../../include/ps Scalar.h ../../include/psImage.h \5 ../../include/psCompare.h ../../include/psVector.h \ 6 ../../include/psHash.h ../../include/psScalar.h ../../include/psImage.h \ 7 7 ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \ 8 8 ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \ -
trunk/psLib/test/collections/tst_psList.c
r1073 r1126 6 6 * @author Robert DeSonia, MHPCC 7 7 * 8 * @version $Revision: 1.1 1$ $Name: not supported by cvs2svn $9 * @date $Date: 2004-06-2 3 23:00:15$8 * @version $Revision: 1.12 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2004-06-29 23:18:00 $ 10 10 * 11 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 25 25 static int testListIterator(void); 26 26 static int testListFree(void); 27 static int testListSort(void); 27 28 28 29 testDescription tests[] = { … … 34 35 {testListIterator,"494-testListIterator",0}, 35 36 {testListFree,"627-testListFree",0}, 37 {testListSort,"624-testListSort",0}, 36 38 {NULL} 37 39 }; … … 439 441 // 1. list is NULL. 440 442 psLogMsg(__func__,PS_LOG_INFO,"Following should be an error"); 441 if (psListRemove(list,NULL,PS_LIST_HEAD) != NULL) {442 psError(__func__,"psList Get didn't return NULLgiven a NULL list.");443 if (psListRemove(list,NULL,PS_LIST_HEAD)) { 444 psError(__func__,"psListRemove didn't return false given a NULL list."); 443 445 return 1; 444 446 }; … … 456 458 457 459 // 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 465 468 if (list->size != 14) { 466 469 printListInt(list); … … 470 473 471 474 // 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) ) { 474 478 printListInt(list); 475 479 psError(__func__,"Failed to remove PS_LIST_TAIL"); 476 480 return 1; 477 481 } 478 psFree(data); 482 479 483 if (list->size != 13) { 480 484 printListInt(list); … … 485 489 // 4. which is PS_LIST_NEXT (element right of cursor [which should be head,tail, and neither]) 486 490 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)) { 489 492 printListInt(list); 490 493 psError(__func__,"Failed to remove PS_LIST_NEXT @ PS_LIST_HEAD"); 491 494 return 1; 492 495 } 493 psFree(data); 496 494 497 if (list->size != 12) { 495 498 printListInt(list); … … 500 503 psListSetIterator(list,PS_LIST_TAIL); 501 504 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)) { 504 506 printListInt(list); 505 507 psError(__func__,"Removed something with PS_LIST_NEXT @ PS_LIST_TAIL"); … … 507 509 } 508 510 511 data = psListGet(list,3); 509 512 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) ) { 512 515 printListInt(list); 513 516 psError(__func__,"Failed to remove PS_LIST_NEXT @ which=2"); 514 517 return 1; 515 518 } 516 psFree(data); 519 517 520 if (list->size != 11) { 518 521 printListInt(list); … … 524 527 psListSetIterator(list,PS_LIST_HEAD); 525 528 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)) { 528 530 printListInt(list); 529 531 psError(__func__,"removed something for PS_LIST_PREVIOUS @ PS_LIST_HEAD"); … … 531 533 } 532 534 535 data = psListGet(list,9); 533 536 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) ) { 536 539 printListInt(list); 537 540 psError(__func__,"Failed to remove PS_LIST_PREVIOUS @ PS_LIST_TAIL"); 538 541 return 1; 539 542 } 540 psFree(data); 543 541 544 if (list->size != 10) { 542 545 printListInt(list); … … 545 548 } 546 549 550 data = psListGet(list,1); 547 551 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) ) { 550 554 printListInt(list); 551 555 psError(__func__,"Failed to remove PS_LIST_PREVIOUS @ which=2"); 552 556 return 1; 553 557 } 554 psFree(data); 558 555 559 if (list->size != 9) { 556 560 printListInt(list); … … 561 565 // 6. which is PS_LIST_UNKNOWN and data=NULL (error) 562 566 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)) { 565 568 printListInt(list); 566 569 psError(__func__,"removed something for PS_LIST_UNKNOWN with data=NULL"); … … 570 573 // 7. which is PS_LIST_UNKNOWN and data=[head,tail,other list items] 571 574 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) ) { 574 577 printListInt(list); 575 578 psError(__func__,"Failed to remove PS_LIST_UNKNOWN @ PS_LIST_HEAD"); 576 579 return 1; 577 580 } 578 psFree(data); 581 579 582 if (list->size != 8) { 580 583 printListInt(list); … … 584 587 585 588 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) ) { 588 591 printListInt(list); 589 592 psError(__func__,"Failed to remove PS_LIST_UNKNOWN @ PS_LIST_TAIL"); 590 593 return 1; 591 594 } 592 psFree(data); 595 593 596 if (list->size != 7) { 594 597 printListInt(list); … … 598 601 599 602 psListSetIterator(list,PS_LIST_HEAD); 603 600 604 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) ) { 604 607 printListInt(list); 605 608 psError(__func__,"Failed to remove PS_LIST_UNKNOWN @ which=1"); 606 609 return 1; 607 610 } 608 psFree(data); 611 609 612 if (list->size != 6) { 610 613 printListInt(list); … … 615 618 // 8. which is PS_LIST_UNKNOWN and data!=NULL and data!=any element in list 616 619 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) ) { 619 621 printListInt(list); 620 622 psError(__func__,"removed something for PS_LIST_UNKNOWN with previously removed item"); … … 623 625 624 626 // 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) ) { 633 636 printListInt(list); 634 637 psError(__func__,"Failed to remove last element"); 635 638 return 1; 636 639 } 637 psFree(data);638 640 639 641 if (list->size != 0) { … … 964 966 return 0; 965 967 } 968 969 int 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.
