MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Testing Packages (Enhancement to CleanSlate)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg17059] Testing Packages (Enhancement to CleanSlate)
  • From: hanssen at zeiss.de
  • Date: Fri, 23 Apr 1999 02:32:04 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

Hi, MathGroup,


When writing an testing packages, one often has to load the
package to be tested. There is a package CleanSlate, which helps
a lot. Using it, you frequently see yourself typing 

    CleanSlate["mypackage`"];
    Needs["mypackage`];

This is a little inconvenient, because you have to enclose
your context name in quotes and also you have to add the
context-mark character (the accent-grave). To overcome
this inconvenience, I have modified the CleanSlate package.
I always load the modified CleanSlate-package through Needs
from init.m:


The beginning of CleanSlate now reads


BeginPackage["CleanSlate`"];
Unprotect[Again,CleanSlate,CleanSlateExcept,ClearInOut];  (* add Again *)

Again::usage= 
"Again[context] is the same as (CleanSlate[context]; Needs[context];) - \n
Instead of a context-name enclosed in quotes it also accepts the  \n
context-name without the quotes and the context-mark at the end.";



Add the following to the body of the package CleanSlate, i.e. after
Begin["`Private`"];



(***************    Again    **************)
Again[context_] := 
Module[{aa}
      ,(If[Head[context]===Symbol
          ,CleanSlate[aa=ToString[context]<>"`"]; 
           Needs[aa]
          ,CleanSlate[context]; Needs[context]
          ];
       )
      ];		(* Again *)



The statement at the very end just before EndPackage[] now reads:

Protect[Again, ClearInOut, CleanSlate, CleanSlateExcept];  (* add Again *)




With these modifications, one can easily modify a package under test 
with a standard editor (e.g. PFE), reload and test it. This is done by
calling Again[mypackage] (provided mypackage is just a symbol
which has not been assigned a value).

If you have syntactical errors in the package (e.g. unbalanced comments, 
unbalanced quotes etc), then you have to "execute" the statement

EndPackage[];

in the notebook, where test your package, before calling 
Again[context].


kind regards

Dipl.-Math. Adelbert Hanszen


  • Prev by Date: ReadList in version 3.0
  • Next by Date: Re: Step functions
  • Previous by thread: ReadList in version 3.0
  • Next by thread: Where can I get finite element analysis MATHEMATIC