Test output for protolk [ok]
Testing time: 1s
/home/mario/local/chicken-4.8.0.3/bin/csi -script run.scm < /dev/null
-- testing with-replacements -------------------------------------------------
sets the given variables within the body ............................. [ PASS]
resets the variables after the body .................................. [ PASS]
resets the variables even if the body has an error ................... [ PASS]
can be used to set just one variable ................................. [ PASS]
can be used to set local variables ................................... [ PASS]
can be used to set global function definitons ........................ [ PASS]
6 tests completed in 0.001 seconds.
6 out of 6 (100%) tests passed.
-- done testing with-replacements --------------------------------------------
-- testing pob pritimive record type -----------------------------------------
-- testing %make-pob -----------------------------------------------------
succeeds when given a base, props, methods, prop-resolver, and method-resolver [ PASS]
fails when given no args ......................................... [ PASS]
fails when given only one arg .................................... [ PASS]
fails when given only two args ................................... [ PASS]
fails when given only three args ................................. [ PASS]
fails when given only four args .................................. [ PASS]
fails when given six or more args ................................ [ PASS]
7 tests completed in 0.001 seconds.
7 out of 7 (100%) tests passed.
-- done testing %make-pob ------------------------------------------------
-- testing pob? ----------------------------------------------------------
returns #t when given a pob ...................................... [ PASS]
returns #f when given a non-pob .................................. [ PASS]
fails when given no args ......................................... [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing pob? -----------------------------------------------------
-- testing %pob-base -----------------------------------------------------
returns the pob's base slot value ................................ [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing %pob-base ------------------------------------------------
-- testing %pob-set-base! ------------------------------------------------
modifies the pob's base slot value ............................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
fails when given only one arg .................................... [ PASS]
4 tests completed in 0.001 seconds.
4 out of 4 (100%) tests passed.
-- done testing %pob-set-base! -------------------------------------------
-- testing %pob-props ----------------------------------------------------
returns the pob's props slot value ............................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing %pob-props -----------------------------------------------
-- testing %pob-set-props! -----------------------------------------------
modifies the pob's props slot value .............................. [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
fails when given only one arg .................................... [ PASS]
4 tests completed in 0.0 seconds.
4 out of 4 (100%) tests passed.
-- done testing %pob-set-props! ------------------------------------------
-- testing %pob-methods --------------------------------------------------
returns the pob's methods slot value ............................. [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing %pob-methods ---------------------------------------------
-- testing %pob-set-methods! ---------------------------------------------
modifies the pob's methods slot value ............................ [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
fails when given only one arg .................................... [ PASS]
4 tests completed in 0.001 seconds.
4 out of 4 (100%) tests passed.
-- done testing %pob-set-methods! ----------------------------------------
-- testing %pob-prop-resolver --------------------------------------------
returns the pob's prop-resolver slot value ....................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing %pob-prop-resolver ---------------------------------------
-- testing %pob-set-prop-resolver! ---------------------------------------
modifies the pob's prop-resolver slot value ...................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
fails when given only one arg .................................... [ PASS]
4 tests completed in 0.0 seconds.
4 out of 4 (100%) tests passed.
-- done testing %pob-set-prop-resolver! ----------------------------------
-- testing %pob-method-resolver ------------------------------------------
returns the pob's method-resolver slot value ..................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing %pob-method-resolver -------------------------------------
-- testing %pob-set-method-resolver! -------------------------------------
modifies the pob's method-resolver slot value .................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when given no args ......................................... [ PASS]
fails when given only one arg .................................... [ PASS]
4 tests completed in 0.001 seconds.
4 out of 4 (100%) tests passed.
-- done testing %pob-set-method-resolver! --------------------------------
12 subgroups completed in 0.004 seconds.
12 out of 12 (100%) subgroups passed.
-- done testing pob pritimive record type ------------------------------------
-- testing primitive prop accessors ------------------------------------------
-- testing %has-prop? ----------------------------------------------------
returns #t when the pob has a matching prop ...................... [ PASS]
returns #f when the pob does not have a matching prop ............ [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when no prop name is specified ............................. [ PASS]
4 tests completed in 0.0 seconds.
4 out of 4 (100%) tests passed.
-- done testing %has-prop? -----------------------------------------------
-- testing %prop ---------------------------------------------------------
returns the value of a matching prop ............................. [ PASS]
returns #<unspecified> when there is no matching prop ............ [ PASS]
optionally accepts a default return value ........................ [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when no prop name is specified ............................. [ PASS]
5 tests completed in 0.0 seconds.
5 out of 5 (100%) tests passed.
-- done testing %prop ----------------------------------------------------
-- testing %resolve-prop -------------------------------------------------
calls the pob's prop-resolver with the given args ................ [ PASS]
1 test completed in 0.0 seconds.
1 out of 1 (100%) test passed.
-- done testing %resolve-prop --------------------------------------------
-- testing %set-prop! ----------------------------------------------------
sets the specified prop in the pob ............................... [ PASS]
replaces the value of existing props with that name .............. [ PASS]
fails when given no args ......................................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when no prop name or value is specified .................... [ PASS]
fails when no value is specified ................................. [ PASS]
6 tests completed in 0.001 seconds.
6 out of 6 (100%) tests passed.
-- done testing %set-prop! -----------------------------------------------
-- testing %unset-prop! --------------------------------------------------
removes all matching props from the pob .......................... [ PASS]
has no effect if there are no matching props ..................... [ PASS]
fails when given no args ......................................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when no prop name is specified ............................. [ PASS]
5 tests completed in 0.0 seconds.
5 out of 5 (100%) tests passed.
-- done testing %unset-prop! ---------------------------------------------
5 subgroups completed in 0.001 seconds.
5 out of 5 (100%) subgroups passed.
-- done testing primitive prop accessors -------------------------------------
-- testing primitive method accessors ----------------------------------------
-- testing %has-method? --------------------------------------------------
returns #t when the pob has a matching method .................... [ PASS]
returns #f when the pob does not have a matching method .......... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when no method name is specified ........................... [ PASS]
4 tests completed in 0.001 seconds.
4 out of 4 (100%) tests passed.
-- done testing %has-method? ---------------------------------------------
-- testing %method -------------------------------------------------------
returns the value of a matching method ........................... [ PASS]
returns #<unspecified> when there is no matching method .......... [ PASS]
optionally accepts a default return value ........................ [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when no method name is specified ........................... [ PASS]
5 tests completed in 0.0 seconds.
5 out of 5 (100%) tests passed.
-- done testing %method --------------------------------------------------
-- testing %resolve-method -----------------------------------------------
calls the pob's method-resolver with the given args .............. [ PASS]
1 test completed in 0.0 seconds.
1 out of 1 (100%) test passed.
-- done testing %resolve-method ------------------------------------------
-- testing %set-method! --------------------------------------------------
sets the specified method in the pob ............................. [ PASS]
replaces the value of existing methods with that name ............ [ PASS]
fails when given no args ......................................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when no method name or value is specified .................. [ PASS]
fails when no value is specified ................................. [ PASS]
6 tests completed in 0.0 seconds.
6 out of 6 (100%) tests passed.
-- done testing %set-method! ---------------------------------------------
-- testing %unset-method! ------------------------------------------------
removes all matching methods from the pob ........................ [ PASS]
has no effect if there are no matching methods ................... [ PASS]
fails when given no args ......................................... [ PASS]
fails when given a non-pob ....................................... [ PASS]
fails when no method name is specified ........................... [ PASS]
5 tests completed in 0.001 seconds.
5 out of 5 (100%) tests passed.
-- done testing %unset-method! -------------------------------------------
5 subgroups completed in 0.002 seconds.
5 out of 5 (100%) subgroups passed.
-- done testing primitive method accessors -----------------------------------
-- testing %method-context ---------------------------------------------------
is a parameter used to store context for the current method .......... [ PASS]
1 test completed in 0.0 seconds.
1 out of 1 (100%) test passed.
-- done testing %method-context ----------------------------------------------
-- testing %active-pob -------------------------------------------------------
returns the active pob in the current context ........................ [ PASS]
returns #f if there is no active pob ................................. [ PASS]
is read-only ......................................................... [ PASS]
3 tests completed in 0.001 seconds.
3 out of 3 (100%) tests passed.
-- done testing %active-pob --------------------------------------------------
-- testing %active-method-name -----------------------------------------------
returns the active method name in the current context ................ [ PASS]
returns #f if there is no active method .............................. [ PASS]
is read-only ......................................................... [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing %active-method-name ------------------------------------------
-- testing %super-context ----------------------------------------------------
is a parameter that stores the super pob, method name, and args ...... [ PASS]
is #f by default ..................................................... [ PASS]
2 tests completed in 0.0 seconds.
2 out of 2 (100%) tests passed.
-- done testing %super-context -----------------------------------------------
-- testing %same-super-context? ----------------------------------------------
is true if the pob and method name match the super context ........... [ PASS]
is false if the pob does not match the super context ................. [ PASS]
is false if the pob does not match the super context ................. [ PASS]
is false if there is no super context ................................ [ PASS]
4 tests completed in 0.0 seconds.
4 out of 4 (100%) tests passed.
-- done testing %same-super-context? -----------------------------------------
-- testing %super-invoked-procs ----------------------------------------------
is a parameter that stores a list of already-invoked procedures ...... [ PASS]
is the empty list by default ......................................... [ PASS]
2 tests completed in 0.0 seconds.
2 out of 2 (100%) tests passed.
-- done testing %super-invoked-procs -----------------------------------------
-- testing %super-resolve-next-method ----------------------------------------
returns the pob's method if there are no invoked procs ............... [ PASS]
returns the next inherited proc not in the list ...................... [ PASS]
returns #f if there are no inherited procs not in the list ........... [ PASS]
does not care about the order of the already invoked procs ........... [ PASS]
returns #f if pob neither contains nor inherits the method ........... [ PASS]
returns #f if pob has no base and no method .......................... [ PASS]
6 tests completed in 0.001 seconds.
6 out of 6 (100%) tests passed.
-- done testing %super-resolve-next-method -----------------------------------
-- testing %start-super ------------------------------------------------------
takes a pob, method name, and list of args ........................... [ PASS]
sets up a new super context then calls %continue-super ............... [ PASS]
2 tests completed in 0.001 seconds.
2 out of 2 (100%) tests passed.
-- done testing %start-super -------------------------------------------------
-- testing %continue-super ---------------------------------------------------
calls the proc returned by %super-resolve-next-method ................ [ PASS]
sets %super-context and %super-invoked-procs before the call ......... [ PASS]
raises '(context super) if there is no next method ................... [ PASS]
includes the pob and method name in the error ........................ [ PASS]
4 tests completed in 0.0 seconds.
4 out of 4 (100%) tests passed.
-- done testing %continue-super ----------------------------------------------
-- testing %super ------------------------------------------------------------
can be called from within a method context ........................... [ PASS]
calls %start-super if called with no super context ................... [ PASS]
calls %start-super if called with a different super context .......... [ PASS]
calls %continue-super if called with the same super context .......... [ PASS]
fails if called from outside a method context ........................ [ PASS]
5 tests completed in 0.0 seconds.
5 out of 5 (100%) tests passed.
-- done testing %super -------------------------------------------------------
-- testing %super* -----------------------------------------------------------
accepts no args ...................................................... [ PASS]
fails if there is no method context .................................. [ PASS]
calls %super with the args from the method context ................... [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing %super* ------------------------------------------------------
-- testing make-pob ----------------------------------------------------------
accepts base, props, methods, prop-resolver, and method-resolver keyword args [ PASS]
returns a pob with the specified contents ............................ [ PASS]
allows all arguments to be omitted ................................... [ PASS]
initializes base to #f if omitted .................................... [ PASS]
initializes props to the empty list if omitted ....................... [ PASS]
initializes methods to the empty list if omitted ..................... [ PASS]
initializes prop-resolver to std-prop-resolver if omitted ............ [ PASS]
initializes method-resolver to std-method-resolver if omitted ........ [ PASS]
8 tests completed in 0.001 seconds.
8 out of 8 (100%) tests passed.
-- done testing make-pob -----------------------------------------------------
-- testing std-prop-resolver -------------------------------------------------
returns a list with self and the prop value, if self defines the prop [ PASS]
returns a cons with the nearest ancestor that defines the prop, and the prop value [ PASS]
searches ancestors recursively to find the prop value ................ [ PASS]
returns #f and the default value if the prop is not found ............ [ PASS]
uses #<unspecified> as the default value by default .................. [ PASS]
stops searching if it ever finds the prop defined as #<unspecified> .. [ PASS]
fails if given no args ............................................... [ PASS]
fails if the prop name is omitted .................................... [ PASS]
does not fail if given the pob and prop name ......................... [ PASS]
does not fail if given the pob, prop name, and default value ......... [ PASS]
fails if given a non-pob for the first arg ........................... [ PASS]
11 tests completed in 0.0 seconds.
11 out of 11 (100%) tests passed.
-- done testing std-prop-resolver --------------------------------------------
-- testing std-method-resolver -----------------------------------------------
returns a pair with self and the definition if self defines it ....... [ PASS]
returns a pair with the nearest ancestor that defines the method, and the definition [ PASS]
searches ancestors recursively to find the definition ................ [ PASS]
returns #f and the default value if the method is not found .......... [ PASS]
uses #<unspecified> as the default value by default .................. [ PASS]
stops searching if it ever finds the method defined as #<unspecified> [ PASS]
fails if given no args ............................................... [ PASS]
fails if the method name is omitted .................................. [ PASS]
does not fail if given the pob and method name ....................... [ PASS]
does not fail if given the pob, method name, and default value ....... [ PASS]
fails if given a non-pob for the first arg ........................... [ PASS]
11 tests completed in 0.001 seconds.
11 out of 11 (100%) tests passed.
-- done testing std-method-resolver ------------------------------------------
-- testing send --------------------------------------------------------------
uses the pob's method-resolver to find its _receive method ........... [ PASS]
invokes the _receive method with the expected arguments .............. [ PASS]
2 tests completed in 0.0 seconds.
2 out of 2 (100%) tests passed.
-- done testing send ---------------------------------------------------------
-- testing pob record type printer -------------------------------------------
uses std-_display if it has no _display method ....................... [ PASS]
uses the pob's _display method if it has one ......................... [ PASS]
uses the _display method inherited from its ancestors ................ [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing pob record type printer --------------------------------------
-- testing std-_receive ------------------------------------------------------
uses the pob's method-resolver to find a matching method ............. [ PASS]
invokes the matching method if found ................................. [ PASS]
resolves _method-missing if no matching method was found ............. [ PASS]
invokes _method-missing if no matching method was found .............. [ PASS]
fails if given only a pob ............................................ [ PASS]
fails if given only a pob and method name ............................ [ PASS]
fails if given too many args ......................................... [ PASS]
7 tests completed in 0.001 seconds.
7 out of 7 (100%) tests passed.
-- done testing std-_receive -------------------------------------------------
-- testing std-_method-missing -----------------------------------------------
fails when given only one arg ........................................ [ PASS]
fails when given only two args ....................................... [ PASS]
fails when given too many args ....................................... [ PASS]
raises a 'no-method exception as part of normal operation ............ [ PASS]
-- testing the 'no-method exception --------------------------------------
contains an informative error message ............................ [ PASS]
contains a 'pob property with the pob who received the message ... [ PASS]
contains a 'method-name property with the method name ............ [ PASS]
contains an 'args property with the args intended for the method . [ PASS]
4 tests completed in 0.0 seconds.
4 out of 4 (100%) tests passed.
-- done testing the 'no-method exception ---------------------------------
4 tests and 1 subgroup completed in 0.001 seconds.
4 out of 4 (100%) tests passed.
1 out of 1 (100%) subgroup passed.
-- done testing std-_method-missing ------------------------------------------
-- testing std-_display ------------------------------------------------------
writes "#<pob>" to the given port .................................... [ PASS]
uses (current-output-port) if the port is omitted .................... [ PASS]
fails if given a non-pob ............................................. [ PASS]
fails if the port is not a port ...................................... [ PASS]
4 tests completed in 0.0 seconds.
4 out of 4 (100%) tests passed.
-- done testing std-_display -------------------------------------------------
-- testing prop-reader -------------------------------------------------------
accepts a prop name and returns a procedure .......................... [ PASS]
fails if given no args ............................................... [ PASS]
fails if given too many args ......................................... [ PASS]
-- testing the procedure -------------------------------------------------
returns the given pob's value for the matching prop .............. [ PASS]
fails if given a non-pob ......................................... [ PASS]
fails if given no args ........................................... [ PASS]
fails if given too many args ..................................... [ PASS]
4 tests completed in 0.0 seconds.
4 out of 4 (100%) tests passed.
-- done testing the procedure --------------------------------------------
3 tests and 1 subgroup completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
1 out of 1 (100%) subgroup passed.
-- done testing prop-reader --------------------------------------------------
-- testing prop-writer -------------------------------------------------------
accepts a prop name and returns a procedure .......................... [ PASS]
fails if given no args ............................................... [ PASS]
fails if given too many args ......................................... [ PASS]
-- testing the procedure -------------------------------------------------
sets the matching prop's value in the given pob .................. [ PASS]
returns void ..................................................... [ PASS]
fails if given a non-pob ......................................... [ PASS]
fails if given no args ........................................... [ PASS]
fails if given too many args ..................................... [ PASS]
5 tests completed in 0.0 seconds.
5 out of 5 (100%) tests passed.
-- done testing the procedure --------------------------------------------
3 tests and 1 subgroup completed in 0.001 seconds.
3 out of 3 (100%) tests passed.
1 out of 1 (100%) subgroup passed.
-- done testing prop-writer --------------------------------------------------
-- testing own-prop ----------------------------------------------------------
returns the prop value from the active self .......................... [ PASS]
raises a 'context error if there is no active self ................... [ PASS]
is settable with set! ................................................ [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing own-prop -----------------------------------------------------
-- testing set-own-prop! -----------------------------------------------------
modifies the prop value in the active self ........................... [ PASS]
returns #<unspecified> on success .................................... [ PASS]
raises a 'context error if there is no active self ................... [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing set-own-prop! ------------------------------------------------
-- testing assert-active-pob -------------------------------------------------
returns #t if the pob is the active pob .............................. [ PASS]
raises a 'context error if the given pob is not the active pob ....... [ PASS]
raises a 'context error if given #f when there is no active pob ...... [ PASS]
accepts an optional error message to use on failure .................. [ PASS]
also uses the custom error message when there is no active pob ....... [ PASS]
fails if given no args ............................................... [ PASS]
6 tests completed in 0.0 seconds.
6 out of 6 (100%) tests passed.
-- done testing assert-active-pob --------------------------------------------
-- testing with-method-context -----------------------------------------------
is a macro that sets the method context .............................. [ PASS]
only sets the method context within the scope of its body ............ [ PASS]
2 tests completed in 0.0 seconds.
2 out of 2 (100%) tests passed.
-- done testing with-method-context ------------------------------------------
-- testing make-method -------------------------------------------------------
exands into a method procedure definition ............................ [ PASS]
sets the method context within the scope of the method body .......... [ PASS]
sets the method context appropriately for no args .................... [ PASS]
sets the method context appropriately for rest args .................. [ PASS]
sets the method context appropriately for optional args .............. [ PASS]
sets the method context appropriately for keyword args ............... [ PASS]
sets the method context for rest and keyword args together ........... [ PASS]
sets the method context for optional and keyword args together ....... [ PASS]
sets the method context for optional, rest, and keyword args together [ PASS]
9 tests completed in 0.001 seconds.
9 out of 9 (100%) tests passed.
-- done testing make-method --------------------------------------------------
-- testing make-private-method -----------------------------------------------
expands into a private method procedure definition ................... [ PASS]
-- testing the resulting method ------------------------------------------
succeeds if the receiver is the active pob ....................... [ PASS]
raises an error if the receiver is not the active pob ............ [ PASS]
2 tests completed in 0.0 seconds.
2 out of 2 (100%) tests passed.
-- done testing the resulting method -------------------------------------
-- testing the error the method raises -----------------------------------
is a 'private-method exception ................................... [ PASS]
contains the pob whose method was called ......................... [ PASS]
contains the name of the method that was called .................. [ PASS]
contains the args that were passed to the method ................. [ PASS]
contains empty args if no args were passed to the method ......... [ PASS]
5 tests completed in 0.0 seconds.
5 out of 5 (100%) tests passed.
-- done testing the error the method raises ------------------------------
sets the method context within the scope of the method body .......... [ PASS]
sets the method context appropriately for no args .................... [ PASS]
sets the method context appropriately for rest args .................. [ PASS]
sets the method context appropriately for optional args .............. [ PASS]
sets the method context appropriately for keyword args ............... [ PASS]
sets the method context for rest and keyword args together ........... [ PASS]
sets the method context for optional and keyword args together ....... [ PASS]
sets the method context for optional, rest, and keyword args together [ PASS]
9 tests and 2 subgroups completed in 0.002 seconds.
9 out of 9 (100%) tests passed.
2 out of 2 (100%) subgroups passed.
-- done testing make-private-method ------------------------------------------
-- testing define-method -----------------------------------------------------
is a macro that defines a method in a pob ............................ [ PASS]
replaces any existing method with the same name in that pob .......... [ PASS]
-- testing the defined method --------------------------------------------
applies to the receiving pob even when the method is inherited ... [ PASS]
1 test completed in 0.0 seconds.
1 out of 1 (100%) test passed.
-- done testing the defined method ---------------------------------------
2 tests and 1 subgroup completed in 0.0 seconds.
2 out of 2 (100%) tests passed.
1 out of 1 (100%) subgroup passed.
-- done testing define-method ------------------------------------------------
-- testing define-private-method ---------------------------------------------
is a macro that defines a method in a pob ............................ [ PASS]
replaces any existing method with the same name in that pob .......... [ PASS]
-- testing the defined method --------------------------------------------
is a private method .............................................. [ PASS]
applies to the receiving pob even when the method is inherited ... [ PASS]
2 tests completed in 0.001 seconds.
2 out of 2 (100%) tests passed.
-- done testing the defined method ---------------------------------------
2 tests and 1 subgroup completed in 0.001 seconds.
2 out of 2 (100%) tests passed.
1 out of 1 (100%) subgroup passed.
-- done testing define-private-method ----------------------------------------
-- testing super -------------------------------------------------------------
is a macro ........................................................... [ PASS]
expands to a %super call ............................................. [ PASS]
2 tests completed in 0.0 seconds.
2 out of 2 (100%) tests passed.
-- done testing super --------------------------------------------------------
-- testing apply-super -------------------------------------------------------
is a macro ........................................................... [ PASS]
applies the given args to %super ..................................... [ PASS]
2 tests completed in 0.001 seconds.
2 out of 2 (100%) tests passed.
-- done testing apply-super --------------------------------------------------
-- testing super* ------------------------------------------------------------
is a macro ........................................................... [ PASS]
accepts no args ...................................................... [ PASS]
expands to a %super* call ............................................ [ PASS]
3 tests completed in 0.0 seconds.
3 out of 3 (100%) tests passed.
-- done testing super* -------------------------------------------------------
-- testing super? ------------------------------------------------------------
accepts no args ...................................................... [ PASS]
fails if there is no super context ................................... [ PASS]
returns #f if there is no next super method .......................... [ PASS]
returns #t if there is a next super method ........................... [ PASS]
4 tests completed in 0.0 seconds.
4 out of 4 (100%) tests passed.
-- done testing super? -------------------------------------------------------
-- testing stdpob-derive -----------------------------------------------------
fails when given #f as the base ...................................... [ PASS]
fails when given a non-pob as the base ............................... [ PASS]
fails when given no args ............................................. [ PASS]
returns a derived pob with the specified contents .................... [ PASS]
initializes props to the empty list if omitted ....................... [ PASS]
initializes methods to the empty list if omitted ..................... [ PASS]
initializes prop-resolver to the base's prop-resolver if omitted ..... [ PASS]
initializes method-resolver to the base's method-resolver if omitted . [ PASS]
8 tests completed in 0.0 seconds.
8 out of 8 (100%) tests passed.
-- done testing stdpob-derive ------------------------------------------------
-- testing stdpob-ancestors --------------------------------------------------
returns a list of all the pob's ancestors, most immediate first ...... [ PASS]
sends 'ancestors to the base to continue the lookup chain ............ [ PASS]
ends the lookup chain when it encounters a #f base ................... [ PASS]
returns an empty list if the pob's base is #f ........................ [ PASS]
returns an empty list if the pob's base is unspecified ............... [ PASS]
fails when given a non-pob ........................................... [ PASS]
6 tests completed in 0.001 seconds.
6 out of 6 (100%) tests passed.
-- done testing stdpob-ancestors ---------------------------------------------
-- testing stdpob-has-ancestor? ----------------------------------------------
returns #t if the second pob is an ancestor of the first pob ......... [ PASS]
returns #f if the second pob is not an ancestor of the first pob ..... [ PASS]
returns #f if both arguments are the same pob ........................ [ PASS]
returns #f if the second argument is #f .............................. [ PASS]
returns #f if the second argument is not a pob ....................... [ PASS]
sends 'has-ancestor? to the base to continue the lookup .............. [ PASS]
fails when given no args ............................................. [ PASS]
fails when given only one pob ........................................ [ PASS]
fails when given too many args ....................................... [ PASS]
fails when the first argument is not a pob ........................... [ PASS]
10 tests completed in 0.0 seconds.
10 out of 10 (100%) tests passed.
-- done testing stdpob-has-ancestor? -----------------------------------------
-- testing stdpob-responds-to? -----------------------------------------------
returns #t if the pob has its own matching method .................... [ PASS]
returns #t if the pob inherits a matching method from its base ....... [ PASS]
returns #t if the pob inherits a matching method from any ancestor ... [ PASS]
returns #f if neither the pob nor ancestors have a matching method ... [ PASS]
returns #f if the pob defines the matching method as #<unspecified> .. [ PASS]
returns #f if the pob inherits #<unspecified> from its base .......... [ PASS]
returns #f if the pob inherits #<unspecified> from any ancestor ...... [ PASS]
accepts (but ignores) any number of args after the message ........... [ PASS]
sends 'responds-to? to the base to continue the lookup ............... [ PASS]
fails if given no args ............................................... [ PASS]
fails if the message is omitted ...................................... [ PASS]
11 tests completed in 0.001 seconds.
11 out of 11 (100%) tests passed.
-- done testing stdpob-responds-to? ------------------------------------------
-- testing stdpob ------------------------------------------------------------
is a pob that exists by default ...................................... [ PASS]
has base set to #f ................................................... [ PASS]
has prop-resolver sot to std-prop-resolver ........................... [ PASS]
has method-resolver set to std-method-resolver ....................... [ PASS]
has a '_display method set to std-_display? .......................... [ PASS]
has a '_receive method set to std-_receive ........................... [ PASS]
has a '_method-missing method set to std-_method-missing ............. [ PASS]
has a 'derive method set to stdpob-derive ............................ [ PASS]
has an 'ancestors method set to stdpob-ancestors ..................... [ PASS]
has a 'has-ancestor? method set to stdpob-has-ancestor? .............. [ PASS]
has a 'responds-to? method set to stdpob-responds-to? ................ [ PASS]
11 tests completed in 0.0 seconds.
11 out of 11 (100%) tests passed.
-- done testing stdpob -------------------------------------------------------