
testfile.mpc   version 3.04
04-JAN-2000, David Mathog, Biology Division, Caltech

This is a testfile for miniproc.  It demonstrates most of the functions
and also shows some of the available programming tricks.  Run it with
a command line like:

  miniproc testfile.mpc test1=1 test2=0 test3=0

As of version 2.00 f$evaluate and f$<- have been eliminated and replaced
with the [ ] reverse Polish calculator function.

SLAVE_MACRO was NOT run before this test procedure

first=a simple string second=var third=3 3 spaces at end will NOT be removed   
a simple stringvar3
var4 is foobar first line of continued include var2 here-var-second line of continued and last line
var5 is var1
*var5 is a simple string
Testing in line quoted substitution with <<>> to standard output stream
#__var3=3 this could have been the first command
#__var3=3 this could have been the second command
Testing in line quoted substitution with {{}} to standard output stream
#__var3=3 this could have been the first command
#__var3=3 this could have been the second command

Testing *var operations

Should be: *resolve1=base **resolve2=foo
Is:        *resolve1=base **resolve2=foo 

substitution level is 1

subs is a variable that changes the substitution level, it defaults to 1
you can change it on the command line by adding "subs=5", for instance. Set
it to zero to shut off substitution.

the line that follows and begins with BIGTEST should read
  BIGTEST < < < < var2 > >< < var3 > > >>  for subs level 0
  BIGTEST < < var3 > >                     for subs level 1
  BIGTEST 3                                for subs levels 2 and up
BIGTEST <<var3>>

The next line should be <<<<a simple string>>>> for subs level 1
<<<<a simple string>>>>
The next line should be {{{{a simple string}}}} for subs level 1
{{{{a simple string}}}}

Testing redirect to second file test2.txt
back in test.txt after an append operation.

testing writing strings to output file.
first write this big old string                                         
next write this small string
next 2 lines are blank


preceding 2 lines are blank
Testing f$in and f$read by reading test2.txt twice
first pass reading and echoing test2.txt
  this is the first line of test2.txt
testing redirect back to, and appending to test.txt, after next line
  this is the last line of test2.txt
second pass reading and echoing test2.txt
  this is the first line of test2.txt
testing redirect back to, and appending to test.txt, after next line
  this is the last line of test2.txt
Close test2.txt by f$in with no filename

test redirect through f$in, several layers deep
 Also testing local integer and string variables
 and local macros

  This is input redirect level 1, going down
  This is input redirect level 2, going down
  This is input redirect level 3, going down
  This is input redirect level 4, going down
  This is input redirect level 5, going down
  This is input redirect level 5, going up
    Local variable :var   is 5
    Local variable :var2  is 0
    Local variable :var3  is a string with 5 in it
    Result of :localmacro is 0
  This is input redirect level 4, going up
    Local variable :var   is 4
    Local variable :var2  is 0
    Local variable :var3  is a string with 4 in it
    Result of :localmacro is 0
  This is input redirect level 3, going up
    Local variable :var   is 3
    Local variable :var2  is 0
    Local variable :var3  is a string with 3 in it
    Result of :localmacro is 0
  This is input redirect level 2, going up
    Local variable :var   is 2
    Local variable :var2  is 0
    Local variable :var3  is a string with 2 in it
    Result of :localmacro is 0
  This is input redirect level 1, going up
    Local variable :var   is 1
    Local variable :var2  is 0
    Local variable :var3  is a string with 1 in it
    Result of :localmacro is 0

Testing f$break,  the form of f$exit which must be used within
  if/elseif/else structures.  Create a command file break_test.mpc
  and then execute it.

   takebreak exists, using f$break to break back to main from test
Testing time functions:

  Time variables were set this way at program startup:


  day is Wed
  month is Jan
  wday is 4
  yday is 5
  dd is 5
  mm is 1
  yyyy is 2000
  hour is 14
  minute is 21
  second is 56
  unixtime is 947110916
  Results from f$file_info on testfile.mpc (which exists) are:
    exists   1
    size     42862
    modtime  947110650
    dir      0
  Results from f$file_info on notreal.mpc (which doesn't exist) are:
    exists   0
    size     42862
    modtime  947110650
    dir      0
  Results from f$file_info on .. (directory, next directory up, unix format) are:
    exists   1
    size     8192
    modtime  942691948
    dir      1
  Results from f$file_info on .  (directory, this directory, unix format) are:
    exists   1
    size     7168
    modtime  942696111
    dir      1
  Results from f$file_info on SYS$COMMON:[000000]syserr.dir (directory FILE for VMS systems are:)
    exists   1
    size     512
    modtime  941043361
    dir      1
  Results from f$file_info on SYS$COMMON:[000000.SYSERR] (directory PATH for VMS systems are:)
    exists   1
    size     512
    modtime  941043361
    dir      1
  Results from f$file_info on / (directory for unix systems are:)
    exists   0
    size     512
    modtime  941043361
    dir      1










Initial assignments to variables;

 astring:   should be: this is a string
                   is: this is a string
 anint:     should be: 10
                   is: 10
 adouble:   should be: 123.0
                   is: 1.230000e+02
 anrpnoper: should be: .multiply.
                   is: .multiply.


Reassignments to variables;

 astring:   should be: new string
                   is: new string
 anint:     should be: 20
                   is: 20
 adouble:   should be: 321.1
                   is: 3.211000e+02
 anrpnoper: should be: .divide_4.
                   is: .divide_4.


Now trying some rpn operations


testing .power.
  Operation: [ 1 2 .power. ] out
  result:    2.000000e+00
  Operation: [ 1 2 3 .power. ] out
  result:    9.000000e+00
  Operation: [ 1 2 3 .power_. ] out
  result:    9.000000e+00
  Operation: [ 1 2 3 4 5 .power_3. ] out
  result:    2.441406e+08
  Operation: [ 1 2 .power. 4 .power. ] out
  result:    1.600000e+01

testing .modulo.
  Operation: [ 1 2 .modulo. ] out
  result:    0.000000e+00
  Operation: [ 1 2 3 .modulo. ] out
  result:    1.000000e+00
  Operation: [ 1 2 3 .modulo_. ] out
  result:    0.000000e+00
  Operation: [ 1 2 3 4 5 .modulo_3. ] out
  result:    1.000000e+00
  Operation: [ 1 2 .modulo. 4 .modulo. ] out
  result:    0.000000e+00

testing .+.
  Operation: [ 1 2 .+. ] out
  result:    3.000000e+00
  Operation: [ 1 2 3 .+. ] out
  result:    5.000000e+00
  Operation: [ 1 2 3 .+_. ] out
  result:    6.000000e+00
  Operation: [ 1 2 3 4 5 .+_3. ] out
  result:    1.200000e+01
  Operation: [ 1 2 .+. 4 .+. ] out
  result:    7.000000e+00

testing .*.
  Operation: [ 1 2 .*. ] out
  result:    2.000000e+00
  Operation: [ 1 2 3 .*. ] out
  result:    6.000000e+00
  Operation: [ 1 2 3 .*_. ] out
  result:    6.000000e+00
  Operation: [ 1 2 3 4 5 .*_3. ] out
  result:    6.000000e+01
  Operation: [ 1 2 .*. 4 .*. ] out
  result:    8.000000e+00

testing .-.
  Operation: [ 1 2 .-. ] out
  result:    -1.000000e+00
  Operation: [ 1 2 3 .-. ] out
  result:    -1.000000e+00
  Operation: [ 1 2 3 .-_. ] out
  result:    -4.000000e+00
  Operation: [ 1 2 3 4 5 .-_3. ] out
  result:    -6.000000e+00
  Operation: [ 1 2 .-. 4 .-. ] out
  result:    -5.000000e+00

testing ./.
  Operation: [ 1 2 ./. ] out
  result:    5.000000e-01
  Operation: [ 1 2 3 ./. ] out
  result:    6.666667e-01
  Operation: [ 1 2 3 ./_. ] out
  result:    1.666667e-01
  Operation: [ 1 2 3 4 5 ./_3. ] out
  result:    1.500000e-01
  Operation: [ 1 2 ./. 4 ./. ] out
  result:    1.250000e-01

testing .or.
  Operation: [ 1 1 1 1 .or. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 0 .or. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 1 .or. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .or. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 0 1 .or. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .or. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .or. ] out
  result:    1.000000e+00

testing .or_.
  Operation: [ 1 1 1 1 .or_. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 0 .or_. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 1 .or_. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .or_. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 0 1 .or_. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .or_. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .or_. ] out
  result:    1.000000e+00

testing .or_3.
  Operation: [ 1 1 1 1 .or_3. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 0 .or_3. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 1 .or_3. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .or_3. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 0 1 .or_3. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .or_3. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .or_3. ] out
  result:    1.000000e+00


testing .and.
  Operation: [ 1 1 1 1 .and. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 0 .and. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 1 .and. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 .and. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 0 1 .and. ] out
  result:    0.000000e+00
  Operation: [ 1 1 0 1 .and. ] out
  result:    0.000000e+00
  Operation: [ 0 1 1 1 1 1 .and. ] out
  result:    1.000000e+00

testing .and_.
  Operation: [ 1 1 1 1 .and_. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 0 .and_. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 1 .and_. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 .and_. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 0 1 .and_. ] out
  result:    0.000000e+00
  Operation: [ 1 1 0 1 .and_. ] out
  result:    0.000000e+00
  Operation: [ 0 1 1 1 1 1 .and_. ] out
  result:    0.000000e+00

testing .and_3.
  Operation: [ 1 1 1 1 .and_3. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 0 .and_3. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 1 .and_3. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 .and_3. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 0 1 .and_3. ] out
  result:    0.000000e+00
  Operation: [ 1 1 0 1 .and_3. ] out
  result:    0.000000e+00
  Operation: [ 0 1 1 1 1 1 .and_3. ] out
  result:    1.000000e+00


testing .xor.
  Operation: [ 1 1 1 1 .xor. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 0 .xor. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 1 .xor. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .xor. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 0 1 .xor. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .xor. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .xor. ] out
  result:    0.000000e+00

testing .xor_.
  Operation: [ 1 1 1 1 .xor_. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 0 .xor_. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 1 .xor_. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .xor_. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 0 1 .xor_. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .xor_. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .xor_. ] out
  result:    1.000000e+00

testing .xor_3.
  Operation: [ 1 1 1 1 .xor_3. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 0 .xor_3. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 1 .xor_3. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .xor_3. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 0 1 .xor_3. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .xor_3. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .xor_3. ] out
  result:    0.000000e+00


testing .nand.
  Operation: [ 1 1 1 1 .nand. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 0 .nand. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 1 .nand. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .nand. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 0 1 .nand. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .nand. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .nand. ] out
  result:    0.000000e+00

testing .nand_.
  Operation: [ 1 1 1 1 .nand_. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 0 .nand_. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 1 .nand_. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .nand_. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 0 1 .nand_. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .nand_. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .nand_. ] out
  result:    1.000000e+00

testing .nand_3.
  Operation: [ 1 1 1 1 .nand_3. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 0 .nand_3. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 1 .nand_3. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .nand_3. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 0 1 .nand_3. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .nand_3. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .nand_3. ] out
  result:    0.000000e+00


testing .nor.
  Operation: [ 1 1 1 1 .nor. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 0 .nor. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 1 .nor. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .nor. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 0 1 .nor. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .nor. ] out
  result:    1.000000e+00
  Operation: [ 0 1 1 1 1 1 .nor. ] out
  result:    0.000000e+00

testing .nor_.
  Operation: [ 1 1 1 1 .nor_. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 0 .nor_. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 1 .nor_. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .nor_. ] out
  result:    0.000000e+00
  Operation: [ 1 0 0 0 0 1 .nor_. ] out
  result:    0.000000e+00
  Operation: [ 1 1 0 1 .nor_. ] out
  result:    0.000000e+00
  Operation: [ 0 1 1 1 1 1 .nor_. ] out
  result:    1.000000e+00

testing .nor_3.
  Operation: [ 1 1 1 1 .nor_3. ] out
  result:    0.000000e+00
  Operation: [ 0 0 0 0 .nor_3. ] out
  result:    1.000000e+00
  Operation: [ 0 0 0 1 .nor_3. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 .nor_3. ] out
  result:    1.000000e+00
  Operation: [ 1 0 0 0 0 1 .nor_3. ] out
  result:    1.000000e+00
  Operation: [ 1 1 0 1 .nor_3. ] out
  result:    0.000000e+00
  Operation: [ 0 1 1 1 1 1 .nor_3. ] out
  result:    0.000000e+00


Testing .showstack.
  Operation: [ 1 &second &third &fourth .showstack. ]
     3: S: fourth
  Operation: [ 1 &second &third &fourth .showstack_. ]
     3: S: fourth
     2: S: third
     1: S: second
     0: D: 1.000000e+00
  Operation: [ 1 &second &third &fourth .showstack_3. ]
     3: S: fourth
     2: S: third
     1: S: second

Testing .not.
  Operation: [ 0 1 0 1 .showstack_. .not. .showstack_. ]
     3: D: 1.000000e+00
     2: D: 0.000000e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00
     3: D: 0.000000e+00
     2: D: 0.000000e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00
  Operation: [ 0 1 0 1 .showstack_. .not_. .showstack_. ]
     3: D: 1.000000e+00
     2: D: 0.000000e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00
     3: D: 0.000000e+00
     2: D: 1.000000e+00
     1: D: 0.000000e+00
     0: D: 1.000000e+00
  Operation: [ 0 1 0 1 .showstack_. .not_3. .showstack_. ]
     3: D: 1.000000e+00
     2: D: 0.000000e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00
     3: D: 0.000000e+00
     2: D: 1.000000e+00
     1: D: 0.000000e+00
     0: D: 0.000000e+00

testing .eq.
  Operation: [ 4 4 4 4 .eq. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 0 .eq. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .eq. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .eq. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .eq. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .eq. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .eq. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 0 .eq. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .eq. ] out
  result:    0.000000e+00

testing .eq_.
  Operation: [ 4 4 4 4 .eq_. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 0 .eq_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .eq_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .eq_. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .eq_. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .eq_. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .eq_. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 0 .eq_. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .eq_. ] out
  result:    0.000000e+00

testing .eq_3.
  Operation: [ 4 4 4 4 .eq_3. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 0 .eq_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .eq_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .eq_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .eq_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .eq_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .eq_3. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 0 .eq_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .eq_3. ] out
  result:    0.000000e+00


testing .ne.
  Operation: [ 4 4 4 4 .ne. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 0 .ne. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 8 .ne. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 16 .ne. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 0 .ne. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 8 .ne. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 4 .ne. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 0 .ne. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 8 .ne. ] out
  result:    1.000000e+00

testing .ne_.
  Operation: [ 4 4 4 4 .ne_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 0 .ne_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .ne_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .ne_. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .ne_. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 8 .ne_. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 4 .ne_. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 0 .ne_. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 8 .ne_. ] out
  result:    1.000000e+00

testing .ne_3.
  Operation: [ 4 4 4 4 .ne_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 0 .ne_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .ne_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .ne_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .ne_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .ne_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .ne_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 0 .ne_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .ne_3. ] out
  result:    0.000000e+00


testing .le.
  Operation: [ 4 4 4 4 .le. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 0 .le. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .le. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 16 .le. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 0 .le. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .le. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 4 .le. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 0 .le. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .le. ] out
  result:    1.000000e+00

testing .le_.
  Operation: [ 4 4 4 4 .le_. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 0 .le_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .le_. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 16 .le_. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 0 .le_. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .le_. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .le_. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 0 .le_. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 8 .le_. ] out
  result:    1.000000e+00

testing .le_3.
  Operation: [ 4 4 4 4 .le_3. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 0 .le_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .le_3. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 16 .le_3. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 0 .le_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .le_3. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 4 .le_3. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 0 .le_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .le_3. ] out
  result:    1.000000e+00


testing .ge.
  Operation: [ 4 4 4 4 .ge. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 0 .ge. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 8 .ge. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .ge. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .ge. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 8 .ge. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .ge. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 0 .ge. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 8 .ge. ] out
  result:    0.000000e+00

testing .ge_.
  Operation: [ 4 4 4 4 .ge_. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 0 .ge_. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 8 .ge_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .ge_. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .ge_. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 8 .ge_. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 4 .ge_. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 0 .ge_. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .ge_. ] out
  result:    0.000000e+00

testing .ge_3.
  Operation: [ 4 4 4 4 .ge_3. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 0 .ge_3. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 8 .ge_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .ge_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .ge_3. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 8 .ge_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .ge_3. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 0 .ge_3. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 8 .ge_3. ] out
  result:    0.000000e+00


testing .lt.
  Operation: [ 4 4 4 4 .lt. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 0 .lt. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .lt. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 16 .lt. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 0 .lt. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .lt. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 4 .lt. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 0 .lt. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .lt. ] out
  result:    1.000000e+00

testing .lt_.
  Operation: [ 4 4 4 4 .lt_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 0 .lt_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .lt_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .lt_. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .lt_. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .lt_. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .lt_. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 0 .lt_. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 8 .lt_. ] out
  result:    1.000000e+00

testing .lt_3.
  Operation: [ 4 4 4 4 .lt_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 0 .lt_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .lt_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .lt_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .lt_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .lt_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .lt_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 0 .lt_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .lt_3. ] out
  result:    0.000000e+00


testing .gt.
  Operation: [ 4 4 4 4 .gt. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 0 .gt. ] out
  result:    1.000000e+00
  Operation: [ 4 4 4 8 .gt. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .gt. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .gt. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 8 .gt. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .gt. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 0 .gt. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 8 .gt. ] out
  result:    0.000000e+00

testing .gt_.
  Operation: [ 4 4 4 4 .gt_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 0 .gt_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .gt_. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .gt_. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .gt_. ] out
  result:    1.000000e+00
  Operation: [ 16 4 4 8 .gt_. ] out
  result:    1.000000e+00
  Operation: [ -4 4 4 4 .gt_. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 0 .gt_. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .gt_. ] out
  result:    0.000000e+00

testing .gt_3.
  Operation: [ 4 4 4 4 .gt_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 0 .gt_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 8 .gt_3. ] out
  result:    0.000000e+00
  Operation: [ 4 4 4 16 .gt_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 0 .gt_3. ] out
  result:    0.000000e+00
  Operation: [ 16 4 4 8 .gt_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 4 .gt_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 0 .gt_3. ] out
  result:    0.000000e+00
  Operation: [ -4 4 4 8 .gt_3. ] out
  result:    0.000000e+00


testing .head.
  Operation: [ &first &second &third &fourth 0 .head. ] astring
  result:    []
  Operation: [ &first &second &third &fourth 4 .head. ] astring
  result:    [four]
  Operation: [ &first &second &third &fourth 6 .head. ] astring
  result:    [fourth]
  Operation: [ &first &second &third &fourth 12 .head. ] astring
  result:    [fourth]
  Operation: [ &first &second &third &fourth 40 .head. ] astring
  result:    [fourth]

testing .head_.
  Operation: [ &first &second &third &fourth 0 .head_. ] astring
  result:    []
  Operation: [ &first &second &third &fourth 4 .head_. ] astring
  result:    [firs]
  Operation: [ &first &second &third &fourth 6 .head_. ] astring
  result:    [firsts]
  Operation: [ &first &second &third &fourth 12 .head_. ] astring
  result:    [firstsecondt]
  Operation: [ &first &second &third &fourth 40 .head_. ] astring
  result:    [firstsecondthirdfourth]

testing .head_3.
  Operation: [ &first &second &third &fourth 0 .head_3. ] astring
  result:    []
  Operation: [ &first &second &third &fourth 4 .head_3. ] astring
  result:    [seco]
  Operation: [ &first &second &third &fourth 6 .head_3. ] astring
  result:    [second]
  Operation: [ &first &second &third &fourth 12 .head_3. ] astring
  result:    [secondthirdf]
  Operation: [ &first &second &third &fourth 40 .head_3. ] astring
  result:    [secondthirdfourth]


testing .tail.
  Operation: [ &first &second &third &fourth 0 .tail. ] astring
  result:    []
  Operation: [ &first &second &third &fourth 4 .tail. ] astring
  result:    [urth]
  Operation: [ &first &second &third &fourth 6 .tail. ] astring
  result:    [fourth]
  Operation: [ &first &second &third &fourth 12 .tail. ] astring
  result:    [fourth]
  Operation: [ &first &second &third &fourth 40 .tail. ] astring
  result:    [fourth]

testing .tail_.
  Operation: [ &first &second &third &fourth 0 .tail_. ] astring
  result:    []
  Operation: [ &first &second &third &fourth 4 .tail_. ] astring
  result:    [urth]
  Operation: [ &first &second &third &fourth 6 .tail_. ] astring
  result:    [fourth]
  Operation: [ &first &second &third &fourth 12 .tail_. ] astring
  result:    [dthirdfourth]
  Operation: [ &first &second &third &fourth 40 .tail_. ] astring
  result:    [firstsecondthirdfourth]

testing .tail_3.
  Operation: [ &first &second &third &fourth 0 .tail_3. ] astring
  result:    []
  Operation: [ &first &second &third &fourth 4 .tail_3. ] astring
  result:    [urth]
  Operation: [ &first &second &third &fourth 6 .tail_3. ] astring
  result:    [fourth]
  Operation: [ &first &second &third &fourth 12 .tail_3. ] astring
  result:    [dthirdfourth]
  Operation: [ &first &second &third &fourth 40 .tail_3. ] astring
  result:    [secondthirdfourth]

testing .segment.
  Operation: [ &first &second &third &fourth 1 0 .segment. ] astring
  result:    []
  Operation: [ &first &second &third &fourth 2 4 .segment. ] astring
  result:    [ourt]
  Operation: [ &first &second &third &fourth 4 10 .segment. ] astring
  result:    [rth]
  Operation: [ &first &second &third &fourth 10 100 .segment. ] astring
  result:    []
testing .segment_.
  Operation: [ &first &second &third &fourth 1 0 .segment_. ] astring
  result:    []
  Operation: [ &first &second &third &fourth 2 4 .segment_. ] astring
  result:    [irst]
  Operation: [ &first &second &third &fourth 4 10 .segment_. ] astring
  result:    [stsecondth]
  Operation: [ &first &second &third &fourth 10 100 .segment_. ] astring
  result:    [ndthirdfourth]
testing .segment_3.
  Operation: [ &first &second &third &fourth 1 0 .segment_3. ] astring
  result:    []
  Operation: [ &first &second &third &fourth 2 4 .segment_3. ] astring
  result:    [econ]
  Operation: [ &first &second &third &fourth 4 10 .segment_3. ] astring
  result:    [ondthirdfo]
  Operation: [ &first &second &third &fourth 10 100 .segment_3. ] astring
  result:    [rdfourth]

testing d,i<->s conversions.  
  [ NOTE.  It is only valid to do a SINGLE 
  conversion for each format string, and the user must
  guarantee that the format string matches the type.]

Testing .d->s.
  Operation: [ -1.0 0.1 23.5 1234.1 "%e" .d->s. .showstack_. ]
     3: S: 1.234100e+03
     2: D: 2.350000e+01
     1: D: 1.000000e-01
     0: D: -1.000000e+00
  Operation: [ -1.0 0.1 23.5 1234.1 "%e" .d->s_. .showstack_. ]
     3: S: 1.234100e+03
     2: S: 2.350000e+01
     1: S: 1.000000e-01
     0: S: -1.000000e+00
  Operation: [ -1.0 0.1 23.5 1234.1 "%e" .d->s_3. .showstack_. ]
     3: S: 1.234100e+03
     2: S: 2.350000e+01
     1: S: 1.000000e-01
     0: D: -1.000000e+00

Testing .i->s.
  Operation: [ -1.0 0.1 23.5 1234.1 "%d" .i->s. .showstack_. ]
     3: S: 1234
     2: D: 2.350000e+01
     1: D: 1.000000e-01
     0: D: -1.000000e+00
  Operation: [ -1.0 0.1 23.5 1234.1 "%d" .i->s_. .showstack_. ]
     3: S: 1234
     2: S: 23
     1: S: 0
     0: S: -1
  Operation: [ -1.0 0.1 23.5 1234.1 "%d" .i->s_3. .showstack_. ]
     3: S: 1234
     2: S: 23
     1: S: 0
     0: D: -1.000000e+00

Testing .s->d.
  Operation: [ '-1.0' '0.1' '23.5' '1234.1' '%le' .s->d. .showstack_. ]
     3: D: 1.234100e+03
     2: S: 23.5
     1: S: 0.1
     0: S: -1.0
  Operation: [ '-1.0' '0.1' '23.5' '1234.1' '%le' .s->d_. .showstack_. ]
     3: D: 1.234100e+03
     2: D: 2.350000e+01
     1: D: 1.000000e-01
     0: D: -1.000000e+00
  Operation: [ '-1.0' '0.1' '23.5' '1234.1' '%le' .s->d_3. .showstack_. ]
     3: D: 1.234100e+03
     2: D: 2.350000e+01
     1: D: 1.000000e-01
     0: S: -1.0

Testing .s->i.
  Operation: [ '-1.0' '0.1' '23.5' '1234.1' '%d' .s->i. .showstack_. ]
     3: D: 1.234000e+03
     2: S: 23.5
     1: S: 0.1
     0: S: -1.0
  Operation: [ '-1.0' '0.1' '23.5' '1234.1' '%d' .s->i_. .showstack_. ]
     3: D: 1.234000e+03
     2: D: 2.300000e+01
     1: D: 0.000000e+00
     0: D: -1.000000e+00
  Operation: [ '-1.0' '0.1' '23.5' '1234.1' '%d' .s->i_3. .showstack_. ]
     3: D: 1.234000e+03
     2: D: 2.300000e+01
     1: D: 0.000000e+00
     0: S: -1.0

Testing .s->i.
  Operation: [ 'AB' 'EF' 'A1' '1F' '%x' .s->i. .showstack_. ]
     3: D: 3.100000e+01
     2: S: A1
     1: S: EF
     0: S: AB
  Operation: [ 'AB' 'EF' 'A1' '1F' '%x' .s->i_. .showstack_. ]
     3: D: 3.100000e+01
     2: D: 1.610000e+02
     1: D: 2.390000e+02
     0: D: 1.710000e+02
  Operation: [ 'AB' 'EF' 'A1' '1F' '%x' .s->i_3. .showstack_. ]
     3: D: 3.100000e+01
     2: D: 1.610000e+02
     1: D: 2.390000e+02
     0: S: AB

Testing .s->i.
  Operation: [ '12' '67' '71' '17' '%o' .s->i. .showstack_. ]
     3: D: 1.500000e+01
     2: S: 71
     1: S: 67
     0: S: 12
  Operation: [ '12' '67' '71' '17' '%o' .s->i_. .showstack_. ]
     3: D: 1.500000e+01
     2: D: 5.700000e+01
     1: D: 5.500000e+01
     0: D: 1.000000e+01
  Operation: [ '12' '67' '71' '17' '%o' .s->i_3. .showstack_. ]
     3: D: 1.500000e+01
     2: D: 5.700000e+01
     1: D: 5.500000e+01
     0: S: 12


Testing .append.
  Operation: [ &First &Second &Third &Fourth &Fifth & .append. ] astring
  result:    [FourthFifth]
  Operation: [ &First &Second &Third &Fourth &Fifth & .append_. ] astring
  result:    [FirstSecondThirdFourthFifth]
  Operation: [ &First &Second &Third &Fourth &Fifth & .append_3. ] astring
  result:    [ThirdFourthFifth]

Testing .append.
  Operation: [ &First &Second &Third &Fourth &Fifth &, .append. ] astring
  result:    [Fourth,Fifth]
  Operation: [ &First &Second &Third &Fourth &Fifth &, .append_. ] astring
  result:    [First,Second,Third,Fourth,Fifth]
  Operation: [ &First &Second &Third &Fourth &Fifth &, .append_3. ] astring
  result:    [Third,Fourth,Fifth]

Testing .longest.
  Operation: [ &First &Second &Third &Fourth &Fifth &, .longest. ] astring
  result:    [,]
  Operation: [ &First &Second &Third &Fourth &Fifth &, .longest_. ] astring
  result:    [Second]
  Operation: [ &First &Second &Third &Fourth &Fifth &, .longest_3. ] astring
  result:    [Fourth]

Testing .shortest.
  Operation: [ &First &Second &Third &Fourth &Fifth &, .shortest. ] astring
  result:    [,]
  Operation: [ &First &Second &Third &Fourth &Fifth &, .shortest_. ] astring
  result:    [,]
  Operation: [ &First &Second &Third &Fourth &Fifth &, .shortest_3. ] astring
  result:    [,]

Testing .uppercase.
  Operation: [ &First &Second &Third &Fourth &Fifth &, .uppercase. .showstack_. ]
     5: S: ,
     4: S: Fifth
     3: S: Fourth
     2: S: Third
     1: S: Second
     0: S: First
  Operation: [ &First &Second &Third &Fourth &Fifth &, .uppercase_. .showstack_. ]
     5: S: ,
     4: S: FIFTH
     3: S: FOURTH
     2: S: THIRD
     1: S: SECOND
     0: S: FIRST
  Operation: [ &First &Second &Third &Fourth &Fifth &, .uppercase_3. .showstack_. ]
     5: S: ,
     4: S: FIFTH
     3: S: FOURTH
     2: S: Third
     1: S: Second
     0: S: First

Testing .lowercase.
  Operation: [ &First &Second &Third &Fourth &Fifth &, .lowercase. .showstack_. ]
     5: S: ,
     4: S: Fifth
     3: S: Fourth
     2: S: Third
     1: S: Second
     0: S: First
  Operation: [ &First &Second &Third &Fourth &Fifth &, .lowercase_. .showstack_. ]
     5: S: ,
     4: S: fifth
     3: S: fourth
     2: S: third
     1: S: second
     0: S: first
  Operation: [ &First &Second &Third &Fourth &Fifth &, .lowercase_3. .showstack_. ]
     5: S: ,
     4: S: fifth
     3: S: fourth
     2: S: Third
     1: S: Second
     0: S: First

Testing .eliminate.
  Operation: [ &First &Second &Third &Fourth &Fifth  .eliminate. .showstack_. ]
     3: S: our
     2: S: Third
     1: S: Second
     0: S: First
  Operation: [ &First &Second &Third &Fourth &Fifth  .eliminate_. .showstack_. ]
     3: S: our
     2: S: Trd
     1: S: Second
     0: S: rs
  Operation: [ &First &Second &Third &Fourth &Fifth  .eliminate_3. .showstack_. ]
     3: S: our
     2: S: Trd
     1: S: Second
     0: S: First

Testing .retain.
  Operation: [ &First &Second &Third &Fourth &Fifth  .retain. .showstack_. ]
     3: S: Fth
     2: S: Third
     1: S: Second
     0: S: First
  Operation: [ &First &Second &Third &Fourth &Fifth  .retain_. .showstack_. ]
     3: S: Fth
     2: S: hi
     1: S: ZERO LENGTH string
     0: S: Fit
  Operation: [ &First &Second &Third &Fourth &Fifth  .retain_3. .showstack_. ]
     3: S: Fth
     2: S: hi
     1: S: ZERO LENGTH string
     0: S: First

Testing .length.
  Operation: [ &First &Second &Third &Fourth &Fifth  .length. .showstack_. ]
     4: D: 5.000000e+00
     3: S: Fourth
     2: S: Third
     1: S: Second
     0: S: First
  Operation: [ &First &Second &Third &Fourth &Fifth  .length_. .showstack_. ]
     4: D: 5.000000e+00
     3: D: 6.000000e+00
     2: D: 5.000000e+00
     1: D: 6.000000e+00
     0: D: 5.000000e+00
  Operation: [ &First &Second &Third &Fourth &Fifth  .length_3. .showstack_. ]
     4: D: 5.000000e+00
     3: D: 6.000000e+00
     2: D: 5.000000e+00
     1: S: Second
     0: S: First

Testing .lexhigh.
  Operation: [ &First &Second &Third &Fourth &Fifth  .lexhigh. ] astring
  result:    [Fourth]
  Operation: [ &First &Second &Third &Fourth &Fifth  .lexhigh_. ] astring
  result:    [Third]
  Operation: [ &First &Second &Third &Fourth &Fifth  .lexhigh_3. ] astring
  result:    [Third]

Testing .lexlow.
  Operation: [ &First &Second &Third &Fourth &Fifth  .lexlow. ] astring
  result:    [Fifth]
  Operation: [ &First &Second &Third &Fourth &Fifth  .lexlow_. ] astring
  result:    [Fifth]
  Operation: [ &First &Second &Third &Fourth &Fifth  .lexlow_3. ] astring
  result:    [Fifth]

Testing .element.
  Operation: [ &A,BC,DEF,GHI &B,CD,EFG,HIJ &C,DE,FGH,IJK &D,EF,GHI,JKL 2 &, .element. .showstack_. ]
     3: S: EF
     2: S: C,DE,FGH,IJK
     1: S: B,CD,EFG,HIJ
     0: S: A,BC,DEF,GHI
  Operation: [ &A,BC,DEF,GHI &B,CD,EFG,HIJ &C,DE,FGH,IJK &D,EF,GHI,JKL 2 &, .element_. .showstack_. ]
     3: S: EF
     2: S: DE
     1: S: CD
     0: S: BC
  Operation: [ &A,BC,DEF,GHI &B,CD,EFG,HIJ &C,DE,FGH,IJK &D,EF,GHI,JKL 2 &, .element_3. .showstack_. ]
     3: S: EF
     2: S: DE
     1: S: CD
     0: S: A,BC,DEF,GHI

Testing .locate.
  Operation: [ &First &Second &Third &Fourth &Fifth &ir .locate. .showstack_. ]
     4: D: 0.000000e+00
     3: S: Fourth
     2: S: Third
     1: S: Second
     0: S: First
  Operation: [ &First &Second &Third &Fourth &Fifth &ir .locate_. .showstack_. ]
     4: D: 0.000000e+00
     3: D: 0.000000e+00
     2: D: 3.000000e+00
     1: D: 0.000000e+00
     0: D: 2.000000e+00
  Operation: [ &First &Second &Third &Fourth &Fifth &ir .locate_3. .showstack_. ]
     4: D: 0.000000e+00
     3: D: 0.000000e+00
     2: D: 3.000000e+00
     1: S: Second
     0: S: First

Testing .stringdel.
  Operation: [ &First &Second &Third &Fourth &Fifth &ir .stringdel. .showstack_. ]
     4: S: Fifth
     3: S: Fourth
     2: S: Third
     1: S: Second
     0: S: First
  Operation: [ &First &Second &Third &Fourth &Fifth &ir .stringdel_. .showstack_. ]
     4: S: Fifth
     3: S: Fourth
     2: S: Thd
     1: S: Second
     0: S: Fst
  Operation: [ &First &Second &Third &Fourth &Fifth &ir .stringdel_3. .showstack_. ]
     4: S: Fifth
     3: S: Fourth
     2: S: Thd
     1: S: Second
     0: S: First

Testing .compare.
  Operation: [ &albert &Alber &ALBERTA &ALBERT &albert .compare. .showstack_. ]
     3: D: 0.000000e+00
     2: S: ALBERTA
     1: S: Alber
     0: S: albert
  Operation: [ &albert &Alber &ALBERTA &ALBERT &albert .compare_. .showstack_. ]
     3: D: 0.000000e+00
     2: D: 0.000000e+00
     1: D: 0.000000e+00
     0: D: 1.000000e+00
  Operation: [ &albert &Alber &ALBERTA &ALBERT &albert .compare_3. .showstack_. ]
     3: D: 0.000000e+00
     2: D: 0.000000e+00
     1: D: 0.000000e+00
     0: S: albert

Testing .ccompare.
  Operation: [ &albert &Alber &ALBERTA &ALBERT &albert .ccompare. .showstack_. ]
     3: D: 1.000000e+00
     2: S: ALBERTA
     1: S: Alber
     0: S: albert
  Operation: [ &albert &Alber &ALBERTA &ALBERT &albert .ccompare_. .showstack_. ]
     3: D: 1.000000e+00
     2: D: 0.000000e+00
     1: D: 0.000000e+00
     0: D: 1.000000e+00
  Operation: [ &albert &Alber &ALBERTA &ALBERT &albert .ccompare_3. .showstack_. ]
     3: D: 1.000000e+00
     2: D: 0.000000e+00
     1: D: 0.000000e+00
     0: S: albert


testing .resize.
  Operation: [ &string1 &string2 &string3 1000 .resize. .storage_. .showstack_. ]
     2: D: 1.000000e+03
     1: D: 2.800000e+01
     0: D: 2.800000e+01
  string1:    [this is the 1st text string]
  string2:    [this is the 2nd text string]
  string3:    [this is the 3rd text string]
  Operation: [ &string1 &string2 &string3 20 .resize_. .storage_. .showstack_. ]
     2: D: 2.000000e+01
     1: D: 2.000000e+01
     0: D: 2.000000e+01
  string1:    [this is the 1st tex]
  string2:    [this is the 2nd tex]
  string3:    [this is the 3rd tex]
  Operation: [ &string1 &string2 &string3 18 .resize_3. .storage_. .showstack_. ]
     2: D: 1.800000e+01
     1: D: 1.800000e+01
     0: D: 1.800000e+01
  string1:    [this is the 1st t]
  string2:    [this is the 2nd t]
  string3:    [this is the 3rd t]


Testing .getenv.
  Operation: [ &HOME &PATH &USER &TERM .getenv. .showstack_. ]
     3: S: vt300-132
     2: S: USER
     1: S: PATH
     0: S: HOME
  Operation: [ &HOME &PATH &USER &TERM .getenv_. .showstack_. ]
     3: S: vt300-132
     2: S: MATHOG
     1: S: prgdisk:[shared.programs.miniproc]
     0: S: usrdisk:[users.mathog]
  Operation: [ &HOME &PATH &USER &TERM .getenv_3. .showstack_. ]
     3: S: vt300-132
     2: S: MATHOG
     1: S: prgdisk:[shared.programs.miniproc]
     0: S: HOME

Testing .swap.
  Operation: [ 1 &string1 -13 &bottom 1 .swap. .showstack_. ]
     3: S: bottom
     2: D: -1.300000e+01
     1: S: string1
     0: D: 1.000000e+00
  Operation: [ 1 &string1 -13 &bottom 1 .swap_. .showstack_. ]
     3: D: 1.000000e+00
     2: D: -1.300000e+01
     1: S: string1
     0: S: bottom
  Operation: [ 1 &string1 -13 &bottom 1 .swap_3. .showstack_. ]
     3: S: string1
     2: D: -1.300000e+01
     1: S: bottom
     0: D: 1.000000e+00

Testing .swap.
  Operation: [ 1 &string1 -13 &bottom 2 .swap. .showstack_. ]
     3: S: bottom
     2: D: -1.300000e+01
     1: S: string1
     0: D: 1.000000e+00
  Operation: [ 1 &string1 -13 &bottom 2 .swap_. .showstack_. ]
     3: D: 1.000000e+00
     2: S: string1
     1: D: -1.300000e+01
     0: S: bottom
  Operation: [ 1 &string1 -13 &bottom 2 .swap_3. .showstack_. ]
     3: S: string1
     2: D: -1.300000e+01
     1: S: bottom
     0: D: 1.000000e+00

Testing .swap.
  Operation: [ 1 &string1 -13 &bottom 3 .swap. .showstack_. ]
     3: S: bottom
     2: D: -1.300000e+01
     1: S: string1
     0: D: 1.000000e+00
  Operation: [ 1 &string1 -13 &bottom 3 .swap_. .showstack_. ]
     3: D: 1.000000e+00
     2: S: string1
     1: D: -1.300000e+01
     0: S: bottom
  Operation: [ 1 &string1 -13 &bottom 3 .swap_3. .showstack_. ]
     3: S: string1
     2: D: -1.300000e+01
     1: S: bottom
     0: D: 1.000000e+00

Testing .rot->up.
  Operation: [ 1 &string1 -13 &bottom 1 .rot->up. .showstack_. ]
     4: S: bottom
     3: D: 1.000000e+00
     2: D: -1.300000e+01
     1: S: string1
     0: D: 1.000000e+00
  Operation: [ 1 &string1 -13 &bottom 1 .rot->up_. .showstack_. ]
     4: D: 1.000000e+00
     3: D: 1.000000e+00
     2: S: bottom
     1: D: -1.300000e+01
     0: S: string1
  Operation: [ 1 &string1 -13 &bottom 1 .rot->up_3. .showstack_. ]
     4: D: -1.300000e+01
     3: D: 1.000000e+00
     2: S: bottom
     1: S: string1
     0: D: 1.000000e+00

Testing .rot->down.
  Operation: [ 1 &string1 -13 &bottom 1 .rot->down. .showstack_. ]
     4: S: bottom
     3: D: 1.000000e+00
     2: D: -1.300000e+01
     1: S: string1
     0: D: 1.000000e+00
  Operation: [ 1 &string1 -13 &bottom 1 .rot->down_. .showstack_. ]
     4: S: bottom
     3: D: -1.300000e+01
     2: S: string1
     1: D: 1.000000e+00
     0: D: 1.000000e+00
  Operation: [ 1 &string1 -13 &bottom 1 .rot->down_3. .showstack_. ]
     4: S: bottom
     3: D: -1.300000e+01
     2: D: 1.000000e+00
     1: S: string1
     0: D: 1.000000e+00

Testing .duplicate.
  Operation: [ 1 &string1 -13 &bottom 1 .duplicate. .showstack_. ]
     5: D: 1.000000e+00
     4: D: 1.000000e+00
     3: S: bottom
     2: D: -1.300000e+01
     1: S: string1
     0: D: 1.000000e+00
  Operation: [ 1 &string1 -13 &bottom 1 .duplicate_. .showstack_. ]
     9: D: 1.000000e+00
     8: S: bottom
     7: D: -1.300000e+01
     6: S: string1
     5: D: 1.000000e+00
     4: D: 1.000000e+00
     3: S: bottom
     2: D: -1.300000e+01
     1: S: string1
     0: D: 1.000000e+00
  Operation: [ 1 &string1 -13 &bottom 1 .duplicate_3. .showstack_. ]
     7: D: 1.000000e+00
     6: S: bottom
     5: D: -1.300000e+01
     4: D: 1.000000e+00
     3: S: bottom
     2: D: -1.300000e+01
     1: S: string1
     0: D: 1.000000e+00

Testing .delete.
  Operation: [ 1 &string1 -13 &bottom 1 .delete. .showstack_. ]
     3: S: bottom
     2: D: -1.300000e+01
     1: S: string1
     0: D: 1.000000e+00
  Operation: [ 1 &string1 -13 &bottom 1 .delete_. .showstack_. ]
Empty Stack
  Operation: [ 1 &string1 -13 &bottom 1 .delete_3. .showstack_. ]
     1: S: string1
     0: D: 1.000000e+00

testing various trig and math functions


Testing .sin.
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .sin. .showstack_. ]
     4: D: 4.102069e-10
     3: D: 3.141593e+00
     2: D: -1.570796e+00
     1: D: 1.570796e+00
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .sin_. .showstack_. ]
     4: D: 4.102069e-10
     3: D: -4.102069e-10
     2: D: -1.000000e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .sin_3. .showstack_. ]
     4: D: 4.102069e-10
     3: D: -4.102069e-10
     2: D: -1.000000e+00
     1: D: 1.570796e+00
     0: D: 0.000000e+00

Testing .cos.
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .cos. .showstack_. ]
     4: D: -1.000000e+00
     3: D: 3.141593e+00
     2: D: -1.570796e+00
     1: D: 1.570796e+00
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .cos_. .showstack_. ]
     4: D: -1.000000e+00
     3: D: -1.000000e+00
     2: D: -2.051034e-10
     1: D: -2.051034e-10
     0: D: 1.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .cos_3. .showstack_. ]
     4: D: -1.000000e+00
     3: D: -1.000000e+00
     2: D: -2.051034e-10
     1: D: 1.570796e+00
     0: D: 0.000000e+00

Testing .tan.
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .tan. .showstack_. ]
     4: D: -4.102069e-10
     3: D: 3.141593e+00
     2: D: -1.570796e+00
     1: D: 1.570796e+00
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .tan_. .showstack_. ]
     4: D: -4.102069e-10
     3: D: 4.102069e-10
     2: D: 4.875589e+09
     1: D: -4.875589e+09
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .tan_3. .showstack_. ]
     4: D: -4.102069e-10
     3: D: 4.102069e-10
     2: D: 4.875589e+09
     1: D: 1.570796e+00
     0: D: 0.000000e+00

Testing .asin.
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .sin_. .showstack_. .asin. .showstack_. ]
     4: D: 4.102069e-10
     3: D: -4.102069e-10
     2: D: -1.000000e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00
     4: D: 4.102069e-10
     3: D: -4.102069e-10
     2: D: -1.000000e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .sin_. .showstack_. .asin_. .showstack_. ]
     4: D: 4.102069e-10
     3: D: -4.102069e-10
     2: D: -1.000000e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00
     4: D: 4.102069e-10
     3: D: -4.102069e-10
     2: D: -1.570796e+00
     1: D: 1.570796e+00
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .sin_. .showstack_. .asin_3. .showstack_. ]
     4: D: 4.102069e-10
     3: D: -4.102069e-10
     2: D: -1.000000e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00
     4: D: 4.102069e-10
     3: D: -4.102069e-10
     2: D: -1.570796e+00
     1: D: 1.000000e+00
     0: D: 0.000000e+00

Testing .acos.
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .cos_. .showstack_. .acos. .showstack_. ]
     4: D: -1.000000e+00
     3: D: -1.000000e+00
     2: D: -2.051034e-10
     1: D: -2.051034e-10
     0: D: 1.000000e+00
     4: D: 3.141593e+00
     3: D: -1.000000e+00
     2: D: -2.051034e-10
     1: D: -2.051034e-10
     0: D: 1.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .cos_. .showstack_. .acos_. .showstack_. ]
     4: D: -1.000000e+00
     3: D: -1.000000e+00
     2: D: -2.051034e-10
     1: D: -2.051034e-10
     0: D: 1.000000e+00
     4: D: 3.141593e+00
     3: D: 3.141593e+00
     2: D: 1.570796e+00
     1: D: 1.570796e+00
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .cos_. .showstack_. .acos_3. .showstack_. ]
     4: D: -1.000000e+00
     3: D: -1.000000e+00
     2: D: -2.051034e-10
     1: D: -2.051034e-10
     0: D: 1.000000e+00
     4: D: 3.141593e+00
     3: D: 3.141593e+00
     2: D: 1.570796e+00
     1: D: -2.051034e-10
     0: D: 1.000000e+00

Testing .atan.
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .tan_. .showstack_. .atan. .showstack_. ]
     4: D: -4.102069e-10
     3: D: 4.102069e-10
     2: D: 4.875589e+09
     1: D: -4.875589e+09
     0: D: 0.000000e+00
     4: D: -4.102069e-10
     3: D: 4.102069e-10
     2: D: 4.875589e+09
     1: D: -4.875589e+09
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .tan_. .showstack_. .atan_. .showstack_. ]
     4: D: -4.102069e-10
     3: D: 4.102069e-10
     2: D: 4.875589e+09
     1: D: -4.875589e+09
     0: D: 0.000000e+00
     4: D: -4.102069e-10
     3: D: 4.102069e-10
     2: D: 1.570796e+00
     1: D: -1.570796e+00
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .tan_. .showstack_. .atan_3. .showstack_. ]
     4: D: -4.102069e-10
     3: D: 4.102069e-10
     2: D: 4.875589e+09
     1: D: -4.875589e+09
     0: D: 0.000000e+00
     4: D: -4.102069e-10
     3: D: 4.102069e-10
     2: D: 1.570796e+00
     1: D: -4.875589e+09
     0: D: 0.000000e+00

Testing .expe.
  Operation: [ 0 .5 1 -10 .expe. .showstack_. ]
     3: D: 4.539993e-05
     2: D: 1.000000e+00
     1: D: 5.000000e-01
     0: D: 0.000000e+00
  Operation: [ 0 .5 1 -10 .expe_. .showstack_. ]
     3: D: 4.539993e-05
     2: D: 2.718282e+00
     1: D: 1.648721e+00
     0: D: 1.000000e+00
  Operation: [ 0 .5 1 -10 .expe_3. .showstack_. ]
     3: D: 4.539993e-05
     2: D: 2.718282e+00
     1: D: 1.648721e+00
     0: D: 0.000000e+00

Testing .exp10.
  Operation: [ 0 .5 1 -10 .exp10. .showstack_. ]
     3: D: 1.000000e-10
     2: D: 1.000000e+00
     1: D: 5.000000e-01
     0: D: 0.000000e+00
  Operation: [ 0 .5 1 -10 .exp10_. .showstack_. ]
     3: D: 1.000000e-10
     2: D: 1.000000e+01
     1: D: 3.162278e+00
     0: D: 1.000000e+00
  Operation: [ 0 .5 1 -10 .exp10_3. .showstack_. ]
     3: D: 1.000000e-10
     2: D: 1.000000e+01
     1: D: 3.162278e+00
     0: D: 0.000000e+00

Testing .loge.
  Operation: [ .5 1 2.718281828 10 .loge. .showstack_. ]
     3: D: 2.302585e+00
     2: D: 2.718282e+00
     1: D: 1.000000e+00
     0: D: 5.000000e-01
  Operation: [ .5 1 2.718281828 10 .loge_. .showstack_. ]
     3: D: 2.302585e+00
     2: D: 1.000000e+00
     1: D: 0.000000e+00
     0: D: -6.931472e-01
  Operation: [ .5 1 2.718281828 10 .loge_3. .showstack_. ]
     3: D: 2.302585e+00
     2: D: 1.000000e+00
     1: D: 0.000000e+00
     0: D: 5.000000e-01

Testing .log10.
  Operation: [ .5 1 2.718281828 10 .log10. .showstack_. ]
     3: D: 1.000000e+00
     2: D: 2.718282e+00
     1: D: 1.000000e+00
     0: D: 5.000000e-01
  Operation: [ .5 1 2.718281828 10 .log10_. .showstack_. ]
     3: D: 1.000000e+00
     2: D: 4.342945e-01
     1: D: 0.000000e+00
     0: D: -3.010300e-01
  Operation: [ .5 1 2.718281828 10 .log10_3. .showstack_. ]
     3: D: 1.000000e+00
     2: D: 4.342945e-01
     1: D: 0.000000e+00
     0: D: 5.000000e-01

Testing .deg->rad.
  Operation: [ 0 90 -90 180 -180 .deg->rad. .showstack_. ]
     4: D: -3.141593e+00
     3: D: 1.800000e+02
     2: D: -9.000000e+01
     1: D: 9.000000e+01
     0: D: 0.000000e+00
  Operation: [ 0 90 -90 180 -180 .deg->rad_. .showstack_. ]
     4: D: -3.141593e+00
     3: D: 3.141593e+00
     2: D: -1.570796e+00
     1: D: 1.570796e+00
     0: D: 0.000000e+00
  Operation: [ 0 90 -90 180 -180 .deg->rad_3. .showstack_. ]
     4: D: -3.141593e+00
     3: D: 3.141593e+00
     2: D: -1.570796e+00
     1: D: 9.000000e+01
     0: D: 0.000000e+00

Testing .rad->deg.
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .rad->deg. .showstack_. ]
     4: D: -1.800000e+02
     3: D: 3.141593e+00
     2: D: -1.570796e+00
     1: D: 1.570796e+00
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .rad->deg_. .showstack_. ]
     4: D: -1.800000e+02
     3: D: 1.800000e+02
     2: D: -9.000000e+01
     1: D: 9.000000e+01
     0: D: 0.000000e+00
  Operation: [ 0 1.570796327 -1.570796327 3.141592654 -3.141592654 .rad->deg_3. .showstack_. ]
     4: D: -1.800000e+02
     3: D: 1.800000e+02
     2: D: -9.000000e+01
     1: D: 1.570796e+00
     0: D: 0.000000e+00
Testing loop iteration in a macro, there should be 3 iterations
this is loop iteration 1
this is loop iteration 2
this is loop iteration 3
Testing if elseif else endif structure  with 
   test1 = 1
   test2 = 0
   test3 = 0
                            mtest1 is true
This is the macro contents1
It doesn't do much of anything
                            mtest1 is true mtest2 and mtest3 are false
This is the macro contents2
It doesn't do much of anything either

Testing ifnot, elseifnot  else endif structure  with 
   test1 = 1
   test2 = 0
   test3 = 0
                            mtest1 is true, mtest2 is false
Testing f$type
  The type of undefined variable "foobar" is 0
  The type of var3 is 1
  The type of var2 is 2
  The type of makemacro is 3
  The type of emptystring is 4
  The type of anrpnoper is 5
  The type of adouble is 6
Testing if, else with  [ 1 0 .+. ]
  correct choice
Testing if, else with [ 0 0 .+. ]
  correct choice
Testing if, else with [ & &something .lexhigh. ]
  correct choice
Testing if, else with [ & &something .lexlow. ]
  correct choice
Testing if, else with [ & &something .lexhigh. ]
  correct choice
Testing if, else with [ & &something .lexlow. ]
  correct choice

Testing ifnot with string
  correct choice
  correct choice

Testing elseifnot with string
  correct choice
  correct choice

Testing ifnot with [ & &something .lexlow. ]
  correct choice
  correct choice

Testing elseifnot with string function
  correct choice
  correct choice

Testing ifnot with int function
  correct choice
  correct choice

Testing elseifnot with int function
  correct choice
  correct choice
Testing pseudoarrays using macros to create and display the results
The array values are just the indices multiplied together
    myarray[1,1]=1
    myarray[1,2]=2
    myarray[1,3]=3
    myarray[1,4]=4
    myarray[2,1]=2
    myarray[2,2]=4
    myarray[2,3]=6
    myarray[2,4]=8
    myarray[3,1]=3
    myarray[3,2]=6
    myarray[3,3]=9
    myarray[3,4]=12
    myarray[4,1]=4
    myarray[4,2]=8
    myarray[4,3]=12
    myarray[4,4]=16
    myarray[5,1]=5
    myarray[5,2]=10
    myarray[5,3]=15
    myarray[5,4]=20
Calling secondary input file:

IN altprefix.mpc file:

Now testing macro 1

  MACRO1, altprefix is ->$<-

Now testing macro 2

  MACRO2, altprefix is -><- (NONE)

Now testing macro 3

  MACRO3, altprefix is @

Now testing macro 4

  MACRO2, altprefix is ~

IN testfile.mpc file:
Now testing macro 1

  MACRO1, altprefix is ->$<-

Now testing macro 2

  MACRO2, altprefix is -><- (NONE)

Now testing macro 3

  MACRO3, altprefix is @

Now testing macro 4

  MACRO2, altprefix is ~


Testing P0, the count of arguments pass. The lines
following this should list 0 thorugh 9

Arguments passed [0]
Arguments passed [1]
Arguments passed [2]
Arguments passed [3]
Arguments passed [4]
Arguments passed [5]
Arguments passed [6]
Arguments passed [7]
Arguments passed [8]
Arguments passed [9]

Testing time functions:

  Time variables were set this way at program rundown:


  day is Wed
  month is Jan
  wday is 4
  yday is 5
  dd is 5
  mm is 1
  yyyy is 2000
  hour is 14
  minute is 21
  second is 58
  unixtime is 947110918

Delta Unixtime for program run was: 2

Test .store.

   After the store operations, the stack should contain
   5 &string1 &string2  0

     3: D: 0.000000e+00
     2: S: string2
     1: S: string1
     0: D: 5.000000e+00
Contents of in_name[1] = string2
Contents of in_name[2] = string1
Contents of in_name[3] = 5.000000e+00
Contents of in_name[4] = <<in_name[4]>>

Test .load.

     2: S: string2
     1: S: in_name[2]
     0: S: in_name[3]

     2: S: string2
     1: S: string1
     0: D: 5.000000e+00

     2: S: string2
     1: S: string1
     0: D: 5.000000e+00

Test .array.
  put only first array cell into stack
     0: S: in_name[1]

  put three array cells into stack
     2: S: in_name[1]
     1: S: in_name[2]
     0: S: in_name[3]

  put three array cells into stack, then load them all
     2: S: string2
     1: S: string1
     0: D: 5.000000e+00




Test .elements.
     2: S: first,second,third
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6
     2: S: first
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6

     2: S: first,second,third
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6
     5: S: ZERO LENGTH string
     4: S: third
     3: S: second
     2: S: first
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6

     2: S: first,second,third
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6
     8: S: ZERO LENGTH string
     7: S: ZERO LENGTH string
     6: S: ZERO LENGTH string
     5: S: ZERO LENGTH string
     4: S: third
     3: S: second
     2: S: first
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6

Test .element.
     2: S: first,second,third
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6
     2: S: ZERO LENGTH string
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6

     2: S: first,second,third
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6
     2: S: ZERO LENGTH string
     1: S: e
     0: S: 1,2,3,4,5,6

     2: S: first,second,third
     1: S: a,b,c,d,e
     0: S: 1,2,3,4,5,6
     2: S: ZERO LENGTH string
     1: S: e
     0: S: 5

  Testing changes of variable scope via the .lifetime. rpn operator.
  No output is produced, but this test is 
  here to make sure that the code runs without exploding.  To verify that 
  this code catches a fatal error, see the notes in the testfile for some
  lines to uncomment.

variables listed by scope levels
 MACRO scope, Macro = makethem
  fvar1
  fvar2
  fvar3
  fvar4
 FILE scope, File = testfile.mpc
  global_out
  var1
  var2
  var3
  var4
  var5
  base
  upone
  uptwo
  resolve1
  resolve2
  astring
  bstring
  cstring
  dstring
  estring
  echo
  inbuffer
  intresult
  stringresult
  intopA
  makeredirects
  takebreak
  showtime
  hold_unixtime
  dorpn
  dorpns
  do3strings
  simple_mathops
  logevaluate
  multilogevaluate
  bitevaluate
  multibitevaluate
  compintevaluate
  multicompintevaluate
  strievaluate
  multistrievaluate
  segevaluate
  dostack
  multistack
  multirpns
  anint
  adouble
  anrpnoper
  useop
  tstring
  string1
  string2
  string3
  contents1
  contents2
  looper
  makemacro
  emptystring
  make2darray
  show2darray
  tostuff
  stuffargs
  reportargs
  in_name[1]
  in_name[2]
  in_name[3]
  load_set[1]
  load_set[2]
  load_set[3]
  makethem
 MINIPROC scope
  test1
  test2
  test3
  macro1
  macro2
  macro3
  macro4
 PROGRAM scope
  none
variables listed by scope levels
 MACRO scope, Macro = makethem
  fvar1
  fvar2
  fvar3
 FILE scope, File = testfile.mpc
  global_out
  var1
  var2
  var3
  var4
  var5
  base
  upone
  uptwo
  resolve1
  resolve2
  astring
  bstring
  cstring
  dstring
  estring
  echo
  inbuffer
  intresult
  stringresult
  intopA
  makeredirects
  takebreak
  showtime
  hold_unixtime
  dorpn
  dorpns
  do3strings
  simple_mathops
  logevaluate
  multilogevaluate
  bitevaluate
  multibitevaluate
  compintevaluate
  multicompintevaluate
  strievaluate
  multistrievaluate
  segevaluate
  dostack
  multistack
  multirpns
  anint
  adouble
  anrpnoper
  useop
  tstring
  string1
  string2
  string3
  contents1
  contents2
  looper
  makemacro
  emptystring
  make2darray
  show2darray
  tostuff
  stuffargs
  reportargs
  in_name[1]
  in_name[2]
  in_name[3]
  load_set[1]
  load_set[2]
  load_set[3]
  makethem
  fvar4
 MINIPROC scope
  test1
  test2
  test3
  macro1
  macro2
  macro3
  macro4
 PROGRAM scope
  none
variables listed by scope levels
 MACRO scope, inactive
 FILE scope, File = testfile.mpc
  global_out
  var1
  var2
  var3
  var4
  var5
  base
  upone
  uptwo
  resolve1
  resolve2
  astring
  bstring
  cstring
  dstring
  estring
  echo
  inbuffer
  intresult
  stringresult
  intopA
  makeredirects
  takebreak
  showtime
  hold_unixtime
  dorpn
  dorpns
  do3strings
  simple_mathops
  logevaluate
  multilogevaluate
  bitevaluate
  multibitevaluate
  compintevaluate
  multicompintevaluate
  strievaluate
  multistrievaluate
  segevaluate
  dostack
  multistack
  multirpns
  anint
  adouble
  anrpnoper
  useop
  tstring
  string1
  string2
  string3
  contents1
  contents2
  looper
  makemacro
  emptystring
  make2darray
  show2darray
  tostuff
  stuffargs
  reportargs
  in_name[1]
  in_name[2]
  in_name[3]
  load_set[1]
  load_set[2]
  load_set[3]
  makethem
 MINIPROC scope
  test1
  test2
  test3
  macro1
  macro2
  macro3
  macro4
  fvar1
  fvar2
 PROGRAM scope
  fvar3
  fvar4

  The presence of this line indicates that .lifetime. does not blow up the 
  program.

  test the ability to remove variables


deep33 before .free. is vardeep33, expect vardeep33
deep33 after  .free. is <<deep33>>, expect <<deep33>>

deep41 before .free. is vardeep41, expect vardeep41
deep32 before .free. is vardeep32, expect vardeep32
deep21 before .free. is vardeep21, expect vardeep21
deep11 before .free. is vardeep11, expect vardeep11
deep41 after  .free. is vardeep41, expect vardeep41
deep32 after  .free. is <<deep32>>, expect <<deep32>>
deep21 after  .free. is <<deep21>>, expect <<deep21>>
deep11 after  .free. is <<deep11>>, expect <<deep11>>


testing .substitute.


Testing .substitute.
  Operation: [ teststring teststring teststring 1 .substitute. .showstack_. ]
     2: S: subs_once = subs_once, <<subs_2_deep>> = subs_twice
     1: S: <<deep11>> = subs_once, <<deep21>> = <<subs_2_deep>>
     0: S: <<deep11>> = subs_once, <<deep21>> = <<subs_2_deep>>
  Operation: [ teststring teststring teststring 1 .substitute_. .showstack_. ]
     2: S: subs_once = subs_once, <<subs_2_deep>> = subs_twice
     1: S: subs_once = subs_once, <<subs_2_deep>> = subs_twice
     0: S: subs_once = subs_once, <<subs_2_deep>> = subs_twice
  Operation: [ teststring teststring teststring 1 .substitute_3. .showstack_. ]
     2: S: subs_once = subs_once, <<subs_2_deep>> = subs_twice
     1: S: subs_once = subs_once, <<subs_2_deep>> = subs_twice
     0: S: subs_once = subs_once, <<subs_2_deep>> = subs_twice

Testing .substitute.
  Operation: [ teststring teststring teststring 5 .substitute. .showstack_. ]
     2: S: subs_once = subs_once, subs_twice = subs_twice
     1: S: <<deep11>> = subs_once, <<deep21>> = <<subs_2_deep>>
     0: S: <<deep11>> = subs_once, <<deep21>> = <<subs_2_deep>>
  Operation: [ teststring teststring teststring 5 .substitute_. .showstack_. ]
     2: S: subs_once = subs_once, subs_twice = subs_twice
     1: S: subs_once = subs_once, subs_twice = subs_twice
     0: S: subs_once = subs_once, subs_twice = subs_twice
  Operation: [ teststring teststring teststring 5 .substitute_3. .showstack_. ]
     2: S: subs_once = subs_once, subs_twice = subs_twice
     1: S: subs_once = subs_once, subs_twice = subs_twice
     0: S: subs_once = subs_once, subs_twice = subs_twice

testing .stacksize.

  Operation: [ .stacksize. .showstack_. ]
     0: D: 0.000000e+00
  Operation: [ 1 .stacksize. .showstack_. ]
     1: D: 1.000000e+00
     0: D: 1.000000e+00
  Operation: [ 1 2 3 4 5 .stacksize. .showstack_. ]
     5: D: 5.000000e+00
     4: D: 5.000000e+00
     3: D: 4.000000e+00
     2: D: 3.000000e+00
     1: D: 2.000000e+00
     0: D: 1.000000e+00
  Operation: [ 1 2 3 4 5 .stacksize_. .showstack_. ]
     5: D: 5.000000e+00
     4: D: 5.000000e+00
     3: D: 4.000000e+00
     2: D: 3.000000e+00
     1: D: 2.000000e+00
     0: D: 1.000000e+00

testing .edit.


Testing .edit.
  Operation: [ toedit toedit toedit &coLLApse editstring .edit. .showstack_. ]
     2: S: firstsecondthird
     1: S: ,:....first,,,second.:::,third,::::
     0: S: ,:....first,,,second.:::,third,::::
  Operation: [ toedit toedit toedit &coLLApse editstring .edit_. .showstack_. ]
     2: S: firstsecondthird
     1: S: firstsecondthird
     0: S: firstsecondthird
  Operation: [ toedit toedit toedit &coLLApse editstring .edit_3. .showstack_. ]
     2: S: firstsecondthird
     1: S: firstsecondthird
     0: S: firstsecondthird

Testing .edit.
  Operation: [ toedit toedit toedit &comPRess editstring .edit. .showstack_. ]
     2: S: ,first,second.third,
     1: S: ,:....first,,,second.:::,third,::::
     0: S: ,:....first,,,second.:::,third,::::
  Operation: [ toedit toedit toedit &comPRess editstring .edit_. .showstack_. ]
     2: S: ,first,second.third,
     1: S: ,first,second.third,
     0: S: ,first,second.third,
  Operation: [ toedit toedit toedit &comPRess editstring .edit_3. .showstack_. ]
     2: S: ,first,second.third,
     1: S: ,first,second.third,
     0: S: ,first,second.third,

Testing .edit.
  Operation: [ toedit toedit toedit &claSSify editstring .edit. .showstack_. ]
     2: S: .first.second.third.
     1: S: ,:....first,,,second.:::,third,::::
     0: S: ,:....first,,,second.:::,third,::::
  Operation: [ toedit toedit toedit &claSSify editstring .edit_. .showstack_. ]
     2: S: .first.second.third.
     1: S: .first.second.third.
     0: S: .first.second.third.
  Operation: [ toedit toedit toedit &claSSify editstring .edit_3. .showstack_. ]
     2: S: .first.second.third.
     1: S: .first.second.third.
     0: S: .first.second.third.

Testing .edit.
  Operation: [ toedit toedit toedit &trIM editstring .edit. .showstack_. ]
     2: S: first,,,second.:::,third
     1: S: ,:....first,,,second.:::,third,::::
     0: S: ,:....first,,,second.:::,third,::::
  Operation: [ toedit toedit toedit &trIM editstring .edit_. .showstack_. ]
     2: S: first,,,second.:::,third
     1: S: first,,,second.:::,third
     0: S: first,,,second.:::,third
  Operation: [ toedit toedit toedit &trIM editstring .edit_3. .showstack_. ]
     2: S: first,,,second.:::,third
     1: S: first,,,second.:::,third
     0: S: first,,,second.:::,third


testing setdepth

Should be [ABCDEF], is [ABCDEF]
Should be [DEF], is [DEF]
Should be [ABCDEF], is [ABCDEF]
Should be [CDEF], is [CDEF]

testing comments

  correct choice
  correct choice


testing internal quotes
  direct to output 

#__ f$macro_return 1

  assignment to string variable

should be: a simple string    is:a simple string
should be: a "simple" string    is:a "simple" string
should be: a 'simple' string    is:a 'simple' string

  in RPN expressions

  Operation: [ 'multiple word sentence passed by internal quotes' 'another multiword sentence' &, .append_. ] astring
  result:    [multiple word sentence passed by internal quotes,another multiword sentence]
  Operation: [ 'first' 'second' 'third' 'fourth' &, .append_. ] astring
  result:    [first,second,third,fourth]
  Operation: [ &first  'second' 'third' 'fourth' ',' .append_. ] astring
  result:    [first,second,third,fourth]
  Operation: [ 'first' 'second' 'third' 'fourth' ',' .append_. ] astring
  result:    [first,second,third,fourth]

testing bitwise operators


testing .b-and.
  Operation: [  1  2  4  8  .b-and. .showstack_. ] out
     2: D: 0.000000e+00
     1: D: 2.000000e+00
     0: D: 1.000000e+00
  Operation: [ 15  7  3  1  .b-and. .showstack_. ] out
     2: D: 1.000000e+00
     1: D: 7.000000e+00
     0: D: 1.500000e+01
  Operation: [  1  3  7 15  .b-and. .showstack_. ] out
     2: D: 7.000000e+00
     1: D: 3.000000e+00
     0: D: 1.000000e+00
  Operation: [  8  4  2  1  .b-and. .showstack_. ] out
     2: D: 0.000000e+00
     1: D: 4.000000e+00
     0: D: 8.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-and. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     2: D: 0.000000e+00
     1: D: 2.147484e+09
     0: D: 2.147484e+09

testing .b-and_.
  Operation: [  1  2  4  8  .b-and_. .showstack_. ] out
     0: D: 0.000000e+00
  Operation: [ 15  7  3  1  .b-and_. .showstack_. ] out
     0: D: 1.000000e+00
  Operation: [  1  3  7 15  .b-and_. .showstack_. ] out
     0: D: 1.000000e+00
  Operation: [  8  4  2  1  .b-and_. .showstack_. ] out
     0: D: 0.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-and_. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     0: D: 0.000000e+00

testing .b-and_3.
  Operation: [  1  2  4  8  .b-and_3. .showstack_. ] out
     1: D: 0.000000e+00
     0: D: 1.000000e+00
  Operation: [ 15  7  3  1  .b-and_3. .showstack_. ] out
     1: D: 1.000000e+00
     0: D: 1.500000e+01
  Operation: [  1  3  7 15  .b-and_3. .showstack_. ] out
     1: D: 3.000000e+00
     0: D: 1.000000e+00
  Operation: [  8  4  2  1  .b-and_3. .showstack_. ] out
     1: D: 0.000000e+00
     0: D: 8.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-and_3. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     1: D: 0.000000e+00
     0: D: 2.147484e+09


testing .b-or.
  Operation: [  1  2  4  8  .b-or. .showstack_. ] out
     2: D: 1.200000e+01
     1: D: 2.000000e+00
     0: D: 1.000000e+00
  Operation: [ 15  7  3  1  .b-or. .showstack_. ] out
     2: D: 3.000000e+00
     1: D: 7.000000e+00
     0: D: 1.500000e+01
  Operation: [  1  3  7 15  .b-or. .showstack_. ] out
     2: D: 1.500000e+01
     1: D: 3.000000e+00
     0: D: 1.000000e+00
  Operation: [  8  4  2  1  .b-or. .showstack_. ] out
     2: D: 3.000000e+00
     1: D: 4.000000e+00
     0: D: 8.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-or. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     2: D: 0.000000e+00
     1: D: 2.147484e+09
     0: D: 2.147484e+09

testing .b-or_.
  Operation: [  1  2  4  8  .b-or_. .showstack_. ] out
     0: D: 1.500000e+01
  Operation: [ 15  7  3  1  .b-or_. .showstack_. ] out
     0: D: 1.500000e+01
  Operation: [  1  3  7 15  .b-or_. .showstack_. ] out
     0: D: 1.500000e+01
  Operation: [  8  4  2  1  .b-or_. .showstack_. ] out
     0: D: 1.500000e+01
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-or_. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     0: D: 4.294967e+09

testing .b-or_3.
  Operation: [  1  2  4  8  .b-or_3. .showstack_. ] out
     1: D: 1.400000e+01
     0: D: 1.000000e+00
  Operation: [ 15  7  3  1  .b-or_3. .showstack_. ] out
     1: D: 7.000000e+00
     0: D: 1.500000e+01
  Operation: [  1  3  7 15  .b-or_3. .showstack_. ] out
     1: D: 1.500000e+01
     0: D: 1.000000e+00
  Operation: [  8  4  2  1  .b-or_3. .showstack_. ] out
     1: D: 7.000000e+00
     0: D: 8.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-or_3. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09


testing .b-xor.
  Operation: [  1  2  4  8  .b-xor. .showstack_. ] out
     2: D: 1.200000e+01
     1: D: 2.000000e+00
     0: D: 1.000000e+00
  Operation: [ 15  7  3  1  .b-xor. .showstack_. ] out
     2: D: 2.000000e+00
     1: D: 7.000000e+00
     0: D: 1.500000e+01
  Operation: [  1  3  7 15  .b-xor. .showstack_. ] out
     2: D: 8.000000e+00
     1: D: 3.000000e+00
     0: D: 1.000000e+00
  Operation: [  8  4  2  1  .b-xor. .showstack_. ] out
     2: D: 3.000000e+00
     1: D: 4.000000e+00
     0: D: 8.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-xor. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     2: D: 0.000000e+00
     1: D: 2.147484e+09
     0: D: 2.147484e+09

testing .b-xor_.
  Operation: [  1  2  4  8  .b-xor_. .showstack_. ] out
     2: D: 1.200000e+01
     1: D: 1.000000e+01
     0: D: 9.000000e+00
  Operation: [ 15  7  3  1  .b-xor_. .showstack_. ] out
     2: D: 2.000000e+00
     1: D: 6.000000e+00
     0: D: 1.400000e+01
  Operation: [  1  3  7 15  .b-xor_. .showstack_. ] out
     2: D: 8.000000e+00
     1: D: 1.200000e+01
     0: D: 1.400000e+01
  Operation: [  8  4  2  1  .b-xor_. .showstack_. ] out
     2: D: 3.000000e+00
     1: D: 5.000000e+00
     0: D: 9.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-xor_. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     2: D: 0.000000e+00
     1: D: 2.147484e+09
     0: D: 2.147484e+09

testing .b-xor_3.
  Operation: [  1  2  4  8  .b-xor_3. .showstack_. ] out
     2: D: 1.200000e+01
     1: D: 1.000000e+01
     0: D: 9.000000e+00
  Operation: [ 15  7  3  1  .b-xor_3. .showstack_. ] out
     2: D: 2.000000e+00
     1: D: 6.000000e+00
     0: D: 1.400000e+01
  Operation: [  1  3  7 15  .b-xor_3. .showstack_. ] out
     2: D: 8.000000e+00
     1: D: 1.200000e+01
     0: D: 1.400000e+01
  Operation: [  8  4  2  1  .b-xor_3. .showstack_. ] out
     2: D: 3.000000e+00
     1: D: 5.000000e+00
     0: D: 9.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-xor_3. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     2: D: 0.000000e+00
     1: D: 2.147484e+09
     0: D: 2.147484e+09


testing .b-not.
  Operation: [  1  2  4  8  .b-not. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 4.000000e+00
     1: D: 2.000000e+00
     0: D: 1.000000e+00
  Operation: [ 15  7  3  1  .b-not. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 3.000000e+00
     1: D: 7.000000e+00
     0: D: 1.500000e+01
  Operation: [  1  3  7 15  .b-not. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 7.000000e+00
     1: D: 3.000000e+00
     0: D: 1.000000e+00
  Operation: [  8  4  2  1  .b-not. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 2.000000e+00
     1: D: 4.000000e+00
     0: D: 8.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-not. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     3: D: 4.294967e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09

testing .b-not_.
  Operation: [  1  2  4  8  .b-not_. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 4.294967e+09
     0: D: 4.294967e+09
  Operation: [ 15  7  3  1  .b-not_. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 4.294967e+09
     0: D: 4.294967e+09
  Operation: [  1  3  7 15  .b-not_. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 4.294967e+09
     0: D: 4.294967e+09
  Operation: [  8  4  2  1  .b-not_. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 4.294967e+09
     0: D: 4.294967e+09
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-not_. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09

testing .b-not_3.
  Operation: [  1  2  4  8  .b-not_3. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 4.294967e+09
     0: D: 1.000000e+00
  Operation: [ 15  7  3  1  .b-not_3. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 4.294967e+09
     0: D: 1.500000e+01
  Operation: [  1  3  7 15  .b-not_3. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 4.294967e+09
     0: D: 1.000000e+00
  Operation: [  8  4  2  1  .b-not_3. .showstack_. ] out
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 4.294967e+09
     0: D: 8.000000e+00
  Operation: [ 2147483647. 2147483649. -2147483647. -2147483649. .showstack_. .b-not_3. .showstack_. ] out
     3: D: -2.147484e+09
     2: D: -2.147484e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09
     3: D: 4.294967e+09
     2: D: 4.294967e+09
     1: D: 2.147484e+09
     0: D: 2.147484e+09


testing f$macro_create 


     MC1 is 1, :hold is 1
     MC1 is 2, :hold is 3
     MC1 is 3, :hold is 6
     MC1 is 4, :hold is 10
     MC1 is 5, :hold is 15
     MC1 is 6, :hold is 21
     MC1 is 7, :hold is 28
     MC1 is 8, :hold is 36
     MC1 is 9, :hold is 45
     MC1 is 10, :hold is 55

testing f$macro_body

  first  call to bodytest 
     in header MC1 = 1
     in body   MC1 = 1
     in body   MC1 = 2
     in body   MC1 = 3
     in body   MC1 = 4
     in body   MC1 = 5
  second call to bodytest 
     in header MC1 = 1
     in body   MC1 = 1
     in body   MC1 = 2
     in body   MC1 = 3
     in body   MC1 = 4
     in body   MC1 = 5
  third  call to bodytest 
     in header MC1 = 1
     in body   MC1 = 1
     in body   MC1 = 2
     in body   MC1 = 3
     in body   MC1 = 4
     in body   MC1 = 5

  Verify that arrays work
  create variables of each type, then dimension them

     3: D: 3.000000e+00
     2: D: 3.000000e+00
     1: S: dblarray
     0: S: strarray
Setting array indices for array of size 3 3 0
Cell       Value   Value
   1 1 0        1  1
   2 1 0        2  2
   3 1 0        3  3
   1 2 0        4  4
   2 2 0        5  5
   3 2 0        6  6
   1 3 0        7  7
   2 3 0        8  8
   3 3 0        9  9
Swapping i,j,k elements for MAXI-i+1,MAXJ-j+1,MAXK-k+1"
Cell       ValueNow   ValueWas
   1 1 0        9  1
   2 1 0        8  2
   3 1 0        7  3
   1 2 0        6  4
   2 2 0        5  5
   3 2 0        6  4
   1 3 0        7  3
   2 3 0        8  2
   3 3 0        9  1
     1: D: 2.000000e+00
     0: D: 2.000000e+00

Testing (offset) and (scale) array functions
  Next two lines should be identical
  1 1 elements of r2 and r are 1.000000e+00 5.000000e+00
  1 1 elements of r2 and r are 1.000000e+00 5.000000e+00
  Next two lines should be identical
  2 2 elements of r2 and r are 3.000000e+00 -7.000000e+00
  2 2 elements of r2 and r are 3.000000e+00 -7.000000e+00

Now testing constant lookup operator
  load all SET bitmaps onto the stack and show stack:
     9: D: 5.120000e+02
     8: D: 2.560000e+02
     7: D: 1.280000e+02
     6: D: 6.400000e+01
     5: D: 3.200000e+01
     4: D: 1.600000e+01
     3: D: 8.000000e+00
     2: D: 4.000000e+00
     1: D: 2.000000e+00
     0: D: 1.000000e+00
  load all TRACE bitmaps by lower case name onto the stack and show stack:
     9: D: 5.120000e+02
     8: D: 2.560000e+02
     7: D: 1.280000e+02
     6: D: 6.400000e+01
     5: D: 3.200000e+01
     4: D: 1.600000e+01
     3: D: 8.000000e+00
     2: D: 4.000000e+00
     1: D: 2.000000e+00
     0: D: 1.000000e+00
  load MAXINLINE value and show result
The value of maxinline is 32768
Testing f$dir_list on platform: VMS (?)
  f$dir_list status: 1
Contents of directory: SYS$SYSDEVICE:[VMS$COMMON]:
  CDA$LIBRARY.DIR;1
  CDE$DEFAULTS.DIR;1
  CXX$LIB.DIR;1
  DEC-AXPVMS-DWMOTIF-V0102-5-1.REFERENCE_PCSI$DESCRIPTION;1
  DEC-AXPVMS-DWMOTIF-V0102-5-1.REFERENCE_PCSI$TLB;1
  DEC-AXPVMS-OPENVMS-V0702-1-5.PCSI$DESCRIPTION;1
  DEC-AXPVMS-OPENVMS-V0702-1-5.PCSI$TLB;1
  DEC-AXPVMS-VMS-V0702-1-2.PCSI$DESCRIPTION;1
  DEC-AXPVMS-VMS-V0702-1-2.PCSI$TLB;1
  DECC$LIB.DIR;1
  DECW$BOOK.DIR;1
  DECW$DEFAULTS.DIR;1
  DECW$INCLUDE.DIR;1
  DIA$TOOLS.DIR;1
  HYPERHELP.DIR;1
  JAVA.DIR;1
  MOM$SYSTEM.DIR;1
  MSA.DIR;1
  SYS$I18N.DIR;1
  SYS$KEYMAP.DIR;1
  SYS$LDR.DIR;1
  SYS$STARTUP.DIR;1
  SYS$ZONEINFO.DIR;1
  SYSCBI.DIR;1
  SYSERR.DIR;1
  SYSEXE.DIR;1
  SYSFONT.DIR;1
  SYSHELP.DIR;1
  SYSHLP.DIR;1
  SYSLIB.DIR;1
  SYSMAINT.DIR;1
  SYSMGR.DIR;1
  SYSMSG.DIR;1
  SYSTEST.DIR;1
  SYSUPD.DIR;1
  TNT.DIR;1
  VUE$LIBRARY.DIR;1
  XDPS$INCLUDE.DIR;1
