home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / debugger / ddd-1.000 / ddd-1 / ddd-1.4b / vsllib / DEMOS / list < prev    next >
Encoding:
Text File  |  1995-05-01  |  3.2 KB  |  110 lines

  1. #!vsl
  2.  
  3. // $Id: list,v 1.1.1.1 1995/05/01 15:48:49 zeller Exp $ 
  4. // Testdatei fuer "list.vsl"
  5.  
  6. // $Log: list,v $
  7. # Revision 1.1.1.1  1995/05/01  15:48:49  zeller
  8. # DDD 0.9 distribution
  9. #
  10. // Revision 9.3  1993/06/25  12:02:06  zeller
  11. // Fix: Kommentare Log-Datei angepasst
  12. //
  13. // Revision 9.2  1993/05/22  20:22:37  zeller
  14. // %Q% added by apply-q-flag.sh 1.5
  15. //
  16. // Revision 9.1  1991/07/08  06:01:46  zeller
  17. // Installierte Version
  18. // 
  19. // Revision 8.1  1991/07/06  15:04:50  zeller
  20. // Installierte Version
  21. // 
  22. // Revision 4.1  1991/05/25  12:53:37  zeller
  23. // Neue Version mit folgenden Eigenschaften:
  24. // Let- und Where-Konstrukten;
  25. // Lokalen und globalen Funktionen, Overloading;
  26. // Erweiterten Fehlermeldungen.
  27. // 
  28. // Revision 1.5  1991/04/30  15:31:24  zeller
  29. // Aequivalenz Argumentliste <-> gewoehnliche Liste gezeigt
  30. // 
  31. // Revision 1.4  1991/04/27  17:24:11  zeller
  32. // Neuer Operator: CONS (::)
  33. // 
  34. // Revision 1.3  1991/04/27  14:48:15  zeller
  35. // Operatoren umgestellt: '|' -> ':', '!' -> '|' (wie gehabt)
  36. // 
  37. // Revision 1.2  1991/04/17  10:04:36  zeller
  38. // Versionsangabe korrigiert
  39. // 
  40. // Revision 1.1  1991/04/17  09:48:32  zeller
  41. // Initial revision
  42. // 
  43.  
  44. #include <list.vsl>
  45.  
  46. _numlist([head]) = num(head);
  47. _numlist([head : tail]) = num(head) & ", " & _numlist(tail);
  48. _numlist(atom) = num(atom);
  49. numlist([]) = "[]";
  50. numlist(l) = "[" & _numlist(l) & "]";
  51.  
  52. car_test() = num(car([1, 2, 3]));
  53. cdr_test() = numlist(cdr([1, 2, 3]));
  54. cons_test() = numlist([1, 2] :: [3, 4] :: [5, 6]);
  55. append_test() = numlist(append([1, 2, 3], 4));
  56.  
  57. bool(a) = if a then "T " else "F " fi;
  58. list_true_test() = bool(member(2, [1, 2, 3])) &
  59.     bool(prefix([1, 2], [1, 2, 3])) &
  60.     bool(suffix([2, 3], [1, 2, 3])) &
  61.     bool(sublist([2, 3], [1, 2, 3, 4]));
  62.  
  63. list_false_test() = bool(member(4, [1, 2, 3])) &
  64.     bool(prefix([1, 4], [1, 2, 3])) &
  65.     bool(suffix([1, 3], [1, 2, 3])) &
  66.     bool(sublist([2, 4], [1, 2, 3, 4]));
  67.  
  68. reverse_test() = numlist(reverse([1, 2, 3, 4]));
  69.  
  70. delete_test() = numlist(delete([4, 5, 5, 6], 5));
  71.  
  72. select_test() = numlist(select([4, 5, 5, 6], 5));
  73.  
  74. flat_test() = numlist(flat([[3, 4], [[5], [6]]]));
  75.  
  76. sort_test() = numlist(sort([2, 1, 3])) & 
  77.     numlist(sort([9, 5, 7, 4, 2, 1, 3, 8, 6]));
  78.  
  79. // convert an argument list into a list
  80. atol(a...) = numlist(a);
  81. args_to_list_test() = atol(1, 2, 3);
  82.  
  83. // convert a list into an argument list
  84. ltoa(list) = atol(list...);
  85. list_to_args_test() = ltoa([1, 2, 3]);
  86.  
  87.  
  88. // all tests
  89. all_list_tests() = 
  90.   car_test()              & vcenter(" // car_test()")
  91. | cdr_test()             & vcenter(" // cdr_test()")
  92. | cons_test()            & vcenter(" // cons_test()")
  93. | append_test()            & vcenter(" // append_test()")
  94. | list_true_test()        & vcenter(" // list_true_test()")
  95. | list_false_test()        & vcenter(" // list_false_test()")
  96. | reverse_test()        & vcenter(" // reverse_test()")
  97. | delete_test()            & vcenter(" // delete_test()")
  98. | select_test()            & vcenter(" // select_test()")
  99. | flat_test()            & vcenter(" // flat_test()")
  100. | sort_test()            & vcenter(" // sort_test()")
  101. | args_to_list_test()    & vcenter(" // args_to_list_test()")
  102. | list_to_args_test()    & vcenter(" // list_to_args_test()")
  103. ;
  104.  
  105. list_explanation() =
  106.   "This is '$RCSfile: list,v $ $Revision: 1.1.1.1 $', based on '" & list_version() & "'.";
  107.  
  108. list_main() = list_explanation() | all_list_tests();
  109. list_main(...) -> list_main();
  110.