[PD-cvs] abstractions/pureunity README,1.1,1.2

Mathieu Bouchard matju at users.sourceforge.net
Thu Dec 29 19:47:59 CET 2005


Update of /cvsroot/pure-data/abstractions/pureunity
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3223

Modified Files:
	README 
Log Message:
.


Index: README
===================================================================
RCS file: /cvsroot/pure-data/abstractions/pureunity/README,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** README	29 Dec 2005 17:27:13 -0000	1.1
--- README	29 Dec 2005 18:47:56 -0000	1.2
***************
*** 1,23 ****
  PureUnity
  
! Copyright 2006 by Mathieu Bouchard
  
  $Id$
  
! ------------------8<--------cut-here--------8<------------------
  GOALS
  
!   1. Provide a unit-test framework, which also provide benchmarking features,
       all made in Pd for use in Pd.
  
!   2. Provide tests for functionality in internals, externals, abstractions, etc.,
!      in a modularized way, in a DRY/OAOO fashion, thus abstracting out common
!      features so that many objects share the same test patch for the features
!      that they have in common.
  
! ------------------8<--------cut-here--------8<------------------
! OVERVIEW
  
! (write me!)
  
  
--- 1,86 ----
  PureUnity
  
! Copyright 2006 by Mathieu Bouchard <matju à artengine point ca>
  
  $Id$
  
! +-+-+--+---+-----+--------+-------------+---------------------+
  GOALS
  
!   1. To provide a unit-test framework, which also provide benchmarking features, 
       all made in Pd for use in Pd.
  
!   2. To provide tests for functionality in internals, externals, abstractions, 
!      etc., in a modularized way, in a DRY/OAOO fashion, thus abstracting out
!      common features so that many objects share the same test patch for the 
!      features that they have in common.
  
! +-+-+--+---+-----+--------+-------------+---------------------+
! TEST PROTOCOL
  
!   new:
!     create common (reusable) fixtures.
  
+   inlet 0:
+     bang:
+       run all available tests in that class. individual tests don't have
+       to be available through individual methods but may. If they do, the
+       names of the methods must match those given in the test results. 
+ 
+       each test should build its own non-reusable fixtures and reinitialize
+       common fixtures, not assuming that the previous tests have left the
+       common fixtures in a normal state.
+ 
+   outlet 0:
+     test results. a sequence of lists like:
+       list $name $passed? $accuracy $elapsed
+     for example:
+       list 
+ 
+     where:
+       $name is a symbol
+       $passed? is either 0 for failure or 1 for success
+       $accuracy is a float proportional to relative error on math
+          (if not applicable, use 0)
+       $elapsed is a float, the time elapsed in milliseconds
+          or it is the symbol "-" if not measured.
+ 
+ +-+-+--+---+-----+--------+-------------+---------------------+
+ SEVERITIES (in decreasing order)
+ 
+  * crash: Segmentation Fault, Bus Error, Illegal Instruction, Infinite Loop, 
+    etc.  You can't deal with those errors at the level of the tests. Maybe there 
+    should be a way to tell a test object to skip certain tests, by name, in 
+    order to be able to perform as many tests as possible while waiting for a 
+    fix. It could become possible to rescue from some of those crashes if Pd
+    supported exceptions (stack-unwinding).
+ 
+  * corruption: this may cause future crashes and failures on innocent 
+    objects/features. I have no solution for this except to be careful.
+ 
+  * post(),error(),pd_error(): Gets printed in the console. The problem is that 
+    those can't be handled by the test objects, so someone has to read them and 
+    interpret them. Also they prevent test objects to ensure that error 
+    conditions produce error messages.
+ 
+  * pd_error2(): I wish this would exist. It would be sort of like pd_error() 
+    but it would produce a pd message instead, whose selector would be an 
+    error code, designed to be both localizable and [route]able. By default, that 
+    message would be sent to the console, but there would be an internal class
+    designed to catch those messages. (If stack-unwinding were possible, it would 
+    be disabled by default on pd_error2 and could be enabled explicitly 
+    by-selector).
+ 
+  * failure: a test object reports a problem through outlet 0.
+ 
+  * dropout: a failure in realtimeness... difficult for an object to detect.
+ 
+  * inaccuracy: a test more or less succeeds but the test detected that the 
+    epsilon sucks.
+ 
+ +-+-+--+---+-----+--------+-------------+---------------------+
+ ETC
+ 
+ 
+ (write me!)
  





More information about the Pd-cvs mailing list