home *** CD-ROM | disk | FTP | other *** search
- #!vsl
-
- // $Id: list,v 1.1.1.1 1995/05/01 15:48:49 zeller Exp $
- // Testdatei fuer "list.vsl"
-
- // $Log: list,v $
- # Revision 1.1.1.1 1995/05/01 15:48:49 zeller
- # DDD 0.9 distribution
- #
- // Revision 9.3 1993/06/25 12:02:06 zeller
- // Fix: Kommentare Log-Datei angepasst
- //
- // Revision 9.2 1993/05/22 20:22:37 zeller
- // %Q% added by apply-q-flag.sh 1.5
- //
- // Revision 9.1 1991/07/08 06:01:46 zeller
- // Installierte Version
- //
- // Revision 8.1 1991/07/06 15:04:50 zeller
- // Installierte Version
- //
- // Revision 4.1 1991/05/25 12:53:37 zeller
- // Neue Version mit folgenden Eigenschaften:
- // Let- und Where-Konstrukten;
- // Lokalen und globalen Funktionen, Overloading;
- // Erweiterten Fehlermeldungen.
- //
- // Revision 1.5 1991/04/30 15:31:24 zeller
- // Aequivalenz Argumentliste <-> gewoehnliche Liste gezeigt
- //
- // Revision 1.4 1991/04/27 17:24:11 zeller
- // Neuer Operator: CONS (::)
- //
- // Revision 1.3 1991/04/27 14:48:15 zeller
- // Operatoren umgestellt: '|' -> ':', '!' -> '|' (wie gehabt)
- //
- // Revision 1.2 1991/04/17 10:04:36 zeller
- // Versionsangabe korrigiert
- //
- // Revision 1.1 1991/04/17 09:48:32 zeller
- // Initial revision
- //
-
- #include <list.vsl>
-
- _numlist([head]) = num(head);
- _numlist([head : tail]) = num(head) & ", " & _numlist(tail);
- _numlist(atom) = num(atom);
- numlist([]) = "[]";
- numlist(l) = "[" & _numlist(l) & "]";
-
- car_test() = num(car([1, 2, 3]));
- cdr_test() = numlist(cdr([1, 2, 3]));
- cons_test() = numlist([1, 2] :: [3, 4] :: [5, 6]);
- append_test() = numlist(append([1, 2, 3], 4));
-
- bool(a) = if a then "T " else "F " fi;
- list_true_test() = bool(member(2, [1, 2, 3])) &
- bool(prefix([1, 2], [1, 2, 3])) &
- bool(suffix([2, 3], [1, 2, 3])) &
- bool(sublist([2, 3], [1, 2, 3, 4]));
-
- list_false_test() = bool(member(4, [1, 2, 3])) &
- bool(prefix([1, 4], [1, 2, 3])) &
- bool(suffix([1, 3], [1, 2, 3])) &
- bool(sublist([2, 4], [1, 2, 3, 4]));
-
- reverse_test() = numlist(reverse([1, 2, 3, 4]));
-
- delete_test() = numlist(delete([4, 5, 5, 6], 5));
-
- select_test() = numlist(select([4, 5, 5, 6], 5));
-
- flat_test() = numlist(flat([[3, 4], [[5], [6]]]));
-
- sort_test() = numlist(sort([2, 1, 3])) &
- numlist(sort([9, 5, 7, 4, 2, 1, 3, 8, 6]));
-
- // convert an argument list into a list
- atol(a...) = numlist(a);
- args_to_list_test() = atol(1, 2, 3);
-
- // convert a list into an argument list
- ltoa(list) = atol(list...);
- list_to_args_test() = ltoa([1, 2, 3]);
-
-
- // all tests
- all_list_tests() =
- car_test() & vcenter(" // car_test()")
- | cdr_test() & vcenter(" // cdr_test()")
- | cons_test() & vcenter(" // cons_test()")
- | append_test() & vcenter(" // append_test()")
- | list_true_test() & vcenter(" // list_true_test()")
- | list_false_test() & vcenter(" // list_false_test()")
- | reverse_test() & vcenter(" // reverse_test()")
- | delete_test() & vcenter(" // delete_test()")
- | select_test() & vcenter(" // select_test()")
- | flat_test() & vcenter(" // flat_test()")
- | sort_test() & vcenter(" // sort_test()")
- | args_to_list_test() & vcenter(" // args_to_list_test()")
- | list_to_args_test() & vcenter(" // list_to_args_test()")
- ;
-
- list_explanation() =
- "This is '$RCSfile: list,v $ $Revision: 1.1.1.1 $', based on '" & list_version() & "'.";
-
- list_main() = list_explanation() | all_list_tests();
- list_main(...) -> list_main();
-