Module: dylan-test-suite Synopsis: Dylan test suite Author: Andy Armstrong Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND define library-spec dylan () module dylan; suite dylan-control-suite; suite dylan-regressions; end library-spec dylan; define module-spec dylan () /// Constants //--- $permanent-hash-state isn't part of our implementation // constant $permanent-hash-state :: ; /// The core classes sealed class (); sealed class (); sealed instantiable class (); open abstract class (); sealed instantiable class (); sealed class (); sealed abstract class (); /// Functions sealed abstract class (); sealed instantiable class (); sealed class (); /// Constructing and initializing instances open generic-function make (, #"rest", #"key", #"all-keys") => (); open generic-function initialize (, #"key", #"all-keys") => (#"rest"); open generic-function slot-initialized? (, ) => (); function list (#"rest") => (); function pair (, ) => (); function range (#"key", #"from", #"to", #"above", #"below", #"by", #"size") => (); function singleton () => (); function limited (, #"key", #"all-keys") => (); function type-union (, #"rest") => (); function vector (#"rest") => (); /// Equality and comparison functions function \~ () => (); function \== (, ) => (); function \~== (, ) => (); open generic-function \= (, ) => (); function \~= (, ) => (); open generic-function \< (, ) => (); function \> (, ) => (); function \<= (, ) => (); function \>= (, ) => (); function min (, #"rest") => (); function max (, #"rest") => (); /// Coercing and copying functions function identity () => (); function values (#"rest") => (#"rest"); open generic-function as (, ) => (); open generic-function as-uppercase () => (); open generic-function as-uppercase! () => (); open generic-function as-lowercase () => (); open generic-function as-lowercase! () => (); open generic-function shallow-copy () => (#"rest"); open generic-function type-for-copy () => (); /// Type functions function instance? (, ) => (); function subtype? (, ) => (); function object-class () => (); function all-superclasses () => (); function direct-superclasses () => (); function direct-subclasses () => (); /// Functional operations function compose (, #"rest") => (); function complement () => (); function disjoin (, #"rest") => (); function conjoin (, #"rest") => (); function curry (, #"rest") => (); function rcurry (, #"rest") => (); function always () => (); /// Function handling functions function apply (, , #"rest") => (#"rest"); function generic-function-methods () => (); function add-method (, ) => (, false-or()); function generic-function-mandatory-keywords () => (false-or()); function function-specializers () => (); function function-arguments () => (, , type-union(one-of(#f, #"all"), )); function function-return-values () => (, , type-union(singleton(#t), )); function applicable-method? (, #"rest") => (); function sorted-applicable-methods (, #"rest") => (, ); function find-method (, ) => (false-or()); function remove-method (, ) => (); /// Defining macros macro-test class-definer-test; macro-test constant-definer-test; macro-test domain-definer-test; macro-test generic-definer-test; macro-test library-definer-test; macro-test method-definer-test; macro-test module-definer-test; macro-test variable-definer-test; /// Statement macros macro-test begin-test; macro-test block-test; macro-test case-test; macro-test for-test; macro-test if-test; macro-test method-test; macro-test select-test; macro-test unless-test; macro-test until-test; macro-test while-test; /// Function macros macro-test colon-equal-test; macro-test or-test; macro-test and-test; /// Other protocols protocol arithmetic; protocol collections; protocol conditions; protocol dylan-extensions; end module-spec dylan; define protocol-spec arithmetic () /// Numbers open abstract class (); sealed abstract class (); sealed abstract class (); sealed abstract class (); sealed class (); sealed class (); sealed class (); sealed abstract class (); sealed class (); /// Arithmetic functions function odd? () => (); function even? () => (); function zero? () => (); function positive? () => (); function negative? () => (); open generic-function integral? () => (); open generic-function \+ (, ) => (#"rest"); open generic-function \* (, ) => (#"rest"); open generic-function \- (, ) => (#"rest"); open generic-function \/ (, ) => (#"rest"); open generic-function negative () => (#"rest"); function floor () => (, ); function ceiling () => (, ); function round () => (, ); function truncate () => (, ); function floor/ (, ) => (, ); function ceiling/ (, ) => (, ); function round (, ) => (, ); function truncate (, ) => (, ); function modulo (, ) => (); function remainder (, ) => (); open generic-function \^ (, ) => (#"rest"); open generic-function abs () => (#"rest"); function logior (#"rest") => (); function logxor (#"rest") => (); function logand (#"rest") => (); function lognot () => (); function logbit? (, ) => (); function ash (, ) => (); open generic-function lcm (, ) => (); open generic-function gcd (, ) => (); end protocol-spec arithmetic; define protocol-spec collections () /// Collections open abstract class (); open abstract class (); open abstract class (); open abstract class (); open abstract class (, ); open abstract class (, ); open abstract class (); open abstract instantiable class (); open abstract instantiable class (); sealed abstract instantiable class (); sealed instantiable class (); open abstract instantiable primary class (, ); open abstract instantiable primary class (, ); sealed abstract instantiable class (); sealed instantiable class (); sealed instantiable class (); open abstract instantiable primary class (); open abstract instantiable class (); sealed instantiable class (, ); //--- isn't part of our implementation // sealed instantiable class // (, ); open abstract instantiable primary class (, ); open abstract instantiable class (
); /// Collection functions open generic-function empty? () => (); open generic-function size () => (#"rest"); open generic-function size-setter (, ) => (); open generic-function rank () => (); open generic-function row-major-index (, #"rest") => (); open generic-function dimensions () => (); open generic-function dimension (, ) => (); open generic-function key-test () => (); open generic-function key-sequence () => (); open generic-function element (, , #"key", #"default") => (); open generic-function element-setter (, , ) => (); open generic-function aref (, #"rest") => (); open generic-function aref-setter (, , #"rest") => (); function first (, #"key", "default") => (); function second (, #"key", "default") => (); function third (, #"key", "default") => (); function first-setter (, , #"key", "default") => (); function second-setter (, , #"key", "default") => (); function third-setter (, , #"key", "default") => (); function last (, #"key", "default") => (); function last-setter (, , #"key", "default") => (); function head () => (); function tail () => (); function head-setter (, ) => (); function tail-setter (, ) => (); open generic-function add (, ) => (); open generic-function add! (, ) => (); open generic-function add-new (, , #"key", #"test") => (); open generic-function add-new! (, , #"key", #"test") => (); open generic-function remove (, , #"key", #"test", #"count") => (); open generic-function remove! (, , #"key", #"test", #"count") => (); open generic-function push (, ) => (); open generic-function pop (, ) => (); open generic-function push-last (, ) => (); open generic-function pop-last (, ) => (); open generic-function reverse () => (); open generic-function reverse! () => (); open generic-function sort (, #"key", #"test", #"stable") => (); open generic-function sort! (, #"key", #"test", #"stable") => (); /// Mapping and reducing function do (, , #"rest") => (singleton(#f)); function map (, , #"rest") => (); function map-as (, , , #"rest") => (); function map-into (, , , #"rest") => (); function any? (, , #"rest") => (); function every? (, , #"rest") => (); open generic-function reduce (, , ) => (); open generic-function reduce1 (, ) => (); open generic-function choose (, ) => (); open generic-function choose-by (, , ) => (); open generic-function member? (, , #"key", #"test") => (); open generic-function find-key (, , #"key", #"skip", #"failure") => (); open generic-function remove-key! (, ) => (); open generic-function replace-elements! (, , , #"key", #"count") => (); open generic-function fill! (, , #"key", #"start", #"end") => (); /// Iteration protocols open generic-function forward-iteration-protocol () => (, , , , , , , ); open generic-function backward-iteration-protocol () => (, , , , , , , ); open generic-function table-protocol (
) => (, ); function merge-hash-ids (, , #"key", #"ordered") => (, ); function object-hash (, ) => (, ); /// Set operations open generic-function intersection (, , #"key", #"test") => (); open generic-function union (, , #"key", #"test") => (); open generic-function remove-duplicates (, #"key", #"test") => (); open generic-function remove-duplicates! (, #"key", #"test") => (); open generic-function copy-sequence (, #"key", #"start", #"end") => (); function concatenate (, #"rest") => (); function concatenate-as (, , #"rest") => (); open generic-function replace-subsequence! (, , #"key", #"start", #"end") => (); open generic-function subsequence-position (, , #"key", #"test", #"count") => (false-or()); end protocol-spec collections; define protocol-spec conditions () /// Conditions open abstract class (); open abstract class (); sealed class (); open abstract class (); sealed instantiable class (); sealed instantiable class (); sealed instantiable class (); open abstract class (); /// Restarts sealed instantiable class (); open abstract class (); sealed instantiable class (); /// Condition functions function signal (type-union(, ), #"rest") => (#"rest"); function error (type-union(, ), #"rest") => (); function cerror (, type-union(, ), #"rest") => (singleton(#f)); function break (type-union(, ), #"rest") => (singleton(#f)); function check-type (, ) => (); function abort () => (); open generic-function default-handler () => (#"rest"); open generic-function restart-query () => (#"rest"); open generic-function return-query () => (#"rest"); function do-handlers () => (singleton(#f)); open generic-function return-allowed? () => (); open generic-function return-description () => (type-union(singleton(#f), , )); function condition-format-string (type-union(, , )) => (); function condition-format-arguments (type-union(, , )) => (); function type-error-value () => (); function type-error-expected-type () => (); end protocol-spec conditions; //--- Bindings not defined by the DRM //---*** Are there any others? define protocol-spec dylan-extensions () constant $minimum-integer :: ; constant $maximum-integer :: ; macro-test function-definer-test; end protocol-spec dylan-extensions;