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 -------------------------------------------------------