Category : Word Processors
Archive   : RING11.ZIP
Filename : RING_TST.QM

 
Output of file : RING_TST.QM contained in archive : RING11.ZIP

* July 2, 1991
* ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ RingLoop Tests (Results) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
* ³ Beep/ Ring Loop Time
* ³ Fail seconds
* ³Macro Conds. Bytes (a) (b) (c) Test
* ³===== ===== ===== === === ==== ========================================
* ³
* ³ Recommended Techniques
* ³ ----------------------
* ³@(e)þ f 25 6.0 1.4 0.35 CursorLt
* ³@(j)þ ok 34 nt 1.8 0.50 CursorDn/Up, Scr Buf (CurrentFileName 2x)
* ³
* ³ Other Techniques
* ³ ----------------
* ³@(a) f 29 41.5 4.1 0.65 Scr Buff (BackSpace)
* ³@(b) f,b 30 29.5 6.0 1.10 Find "path:\NUL"
* ³@(c) f,b 28 15.5 3.2 0.60 Find Dummy Character
* ³@(d) f 24 12.0 3.6 0.80 EndFile BegFile
* ³@(f) ok 29 46.0 4.6 0.75 Scr Buff (CurrentFileName 2x)
* ³@(g) f 36 7.0 1.7 0.40 CursorDn/Up CursorLt EndLine/BegLine
* ³@(h) f 30 7.0 1.7 0.40 CursorDn/Up CursorLt
* ³@(i) f 22 f 1.6 0.40 CursorDn/Up
* ³
* ³ (Purpose) and Objectives of Tests
* ³ (Recommendations) and Conclusions:
* ³ (Macros)
* ³ (Description) of Tests
* ³ (Fail) Conditions
* ³ (Equipment)/Software for Testing
* ³ (Footnotes)
* ³
* ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

* (Purpose) and Objectives of Tests
* ----------------------------------

* The purpose of these tests was find the most effective QEdit macro
* technique to execute undetermined tasks in each file in the ring. My
* ideas and those of John Goodman, Kyle Watkins and Tim Farley were
* tested in very simple macros that loop through the QEdit file ring
* once and only once. The objectives were to find a technique that was
* fast, visibly and audibly pleasing (no beeps), and would not fail
* under any circumstances.

* (Recommendations) and Conclusions
* ---------------------------------
* 1) - Use macro @e technique (developed by Kyle Watkins of
* Semware) when loading files from the command line for
* subsequent macro processing of all files in the ring,
* like the search/replace macros in SRCHxx.QM in AMACxx.ZIP.
* Macro @e only fails if the cursor is in column 2 in any
* file in ring and is the fastest.

* 2) - Use macro @j technique when editing files for macro
* processing of all files in the ring. It is slightly slower
* and larger (9 bytes) than @e, but there are *no* file
* conditions or cursor positions which cause this macro
* technique to fail. It is foolproof.

* (Footnotes)
* -----------
* b - Macros beep if Find beep set on in QCONFIG
* f - Macro fail conditions
* nt - Not tested
* ok - Will not fail

* (Description) of Tests
* -----------------------
* Three different tests were used. Time was measured manually to the
* nearest second using the second hand clock hand. Total run time was
* divided by the number of times the macro was executed consecutively
* without stopping to arrive at a relative time comparison for each
* macro technique. The technique used in ring looping portion of the
* macros in RINGxx.QM was proposed later by Richard Blackburn and was
* not tested in this series.

* Test a - 500 files containing one line "test", 6 bytes each
* (Time for 1 repeat, accuracy +/- 1.0 seconds)
* Test b - 100 files containing two lines "test", 14 bytes each
* (Time for 10 repeats ö 10, accuracy +/- 0.10 seconds)
* Test c - 10 files, 10k each, total 100k
* (Time for 20 repeats ö 20, accuracy +/- 0.05 seconds)

* Macro (Fail) Conditions
* ------------------------
* @a fails if file name NU is loaded
* @b fails if "path:\NUL" exists in any file in ring
* @c fails if dummy character #250 exists in any loaded file
* @d fails if any empty file is loaded in ring
* @e fails if cursor is in column 2 in any file in ring
* @g fails if cursor is in column 2 in any blank file in ring
* @h fails if cursor is in column 2 in any single line file in ring
* @i fails if any single line file in ring, empty or not

* (Equipment)/Software for Testing
* ---------------------------------
* 10 mhz XT clone with 12 mhz Everex accelerator board (SI 10.4)
* 5 megs ram with 3 AST ram boards (wish I could fit more in)
* Miniscribe 40 meg as E: (17.2 meg, data) and G: (26.6 meg, files)
* Seagate 20 meg as F: (used to incrementally backup E: and G:)
* 360k floppy as A:
* 720k floppy as B:
* Everex 2400 baud internal modem
* Magnavox VGA paper white Monitor
* Logix VGA board
* PC Kwik (1.7 meg cache) configured C: and D: ram disks
* PCED
* NEWKEY

* Test (Macros)
* ===============
* 
* ----------------------------------------------------------------------
* @(a) Scratch Buffer BackSpace, Fails if file name NU is loaded
* (John Goodman technique)
* ----------------------------------------------------------------------
@a MacroBegin
UnMarkBlock
PrevFile
EditFile "NUL" Return
DropAnchor
StoreScrBuff
CurrentFileName
BackSpace
Return
RINGLOOP:
NextFile
GetScrBuff
CurrentFileName
BackSpace
Return
JFalse RINGLOOP:
END:
Quit
NextFile
* 29 bytes Fri 05-17-1991 00:35:21 (TH/JG)

* 
* ----------------------------------------------------------------------
* @(b) Find CurrentFileName, A "beeping" method, Fails if "path:\NUL"
* exists in any file in ring (John Goodman technique)
* ----------------------------------------------------------------------
@b MacroBegin
PrevFile
EditFile "NUL" Return
CurrentFileName
RINGLOOP:
NextFile
UnmarkBlock
MarkLine
Find CurrentFileName Return "LB" Return
JFalse RINGLOOP:
END:
Quit
NextFile
* 30 bytes Fri 05-17-1991 14:31:01 (TH/JG)

* 
* ----------------------------------------------------------------------
* @(c) Find Dummy Character, A "beeping" method, Will not fail unless
* dummy character #250 exists in any loaded file in th ring
* (John Goodman technique)
* ----------------------------------------------------------------------
@c MacroBegin
PrevFile
EditFile "NUL" Return
#250
RINGLOOP:
NextFile
Find #250 Return "B" Return
JFalse RINGLOOP:
END:
Quit
NextFile
* 28 bytes Fri 05-17-1991 14:32:29 (TH/JG)

* 
* ----------------------------------------------------------------------
* @(d) EndFile/BegFile suggested by Tim Farley, Fails if any empty file
* is loaded in ring
* ----------------------------------------------------------------------
@d MacroBegin
UnMarkBlock
DropAnchor
PrevFile
EditFile "NUL" Return
RINGLOOP:
NextFile
EndFile BegFile
JTrue RINGLOOP:
END:
Quit
GoToBlockBeg
UnMarkBlock
*
* 24 bytes Fri 05-17-1991 14:33:47 (TH)

* 
* ----------------------------------------------------------------------
* @(e) CursorLeft, Fails only if cursor is in column 2 in any file
* in ring (Kyle Watkins' technique)
* ----------------------------------------------------------------------
@e MacroBegin
PrevFile * Position to load NUL file
EditFile "NUL" Return * Load NUL file
CursorRight * Put cursor in column 2 of NUL file
RINGLOOP:
NextFile * Move to next file in ring
CursorLeft * See if we can move cursor left
Jfalse RINGLOOP: * If we can't move cursor left, it's not
* the NUL file, then move to next file
CursorLeft * If we could move cursor left, see if we
* can do it again
JTrue RINGLOOP: * If we can, we are not in the NUL file,
* and move to next file
END: *ELSE test was false and we must be in
* the NUL file
Quit * Quit it
NextFile * Move to file we started in
*
* 25 bytes Fri 05-17-1991 09:00:37 (TH)

* 
* ----------------------------------------------------------------------
* @(f) Scratch Buffer CurrentFileName 2x, Will not fail
* (John Goodman's technique)
* ----------------------------------------------------------------------

@f MacroBegin
UnMarkBlock * Unmark blocks
PrevFile * Position to load NUL file
EditFile "NUL" Return * Load NUL file
DropAnchor * Need a block marker for StoreScrBuff
StoreScrBuff * Create a buffer named
CurrentFileName * "path:\NULpath:\NUL" eg
CurrentFileName * "c:\nulc:\nul"
Return *
RINGLOOP: *
NextFile * Go to next file in ring
GetScrBuff * Try retrieving a buffer named
CurrentFileName * current file's name 2x, eg
CurrentFileName * "c:\current.extc:\current.ext"
Return *
JFalse RINGLOOP: * Buffer only exists for "c:\nulc:\nul"
* If test is false, we are not yet in
* the NUL file, move to next file
END: *ELSE test was true and we must be in
* the NUL file
Quit * Quit it
NextFile * Move to file we started in
*
* 29 bytes Sat 05-18-1991 01:33:57 (TH/JG)

* 
* ----------------------------------------------------------------------
* @(g) CursorDown/Up CursorLeft EndLine/Begline,
* Fails if cursor is in column 2 in any blank file in ring
* ----------------------------------------------------------------------
@g MacroBegin
UnMarkBlock *
PrevFile * Position to load NUL file
EditFile "NUL" Return * Load NUL file
CursorRight * Put cursor in column 2 of NUL file
RINGLOOP: *
NextFile * Move to next file in ring
CursorDown CursorUp * Test if file has more than one line
JTrue RINGLOOP: * If so, move to next file
CursorLeft * See if we can move cursor left
Jfalse RINGLOOP: * If we can't move cursor left, it's not
* the NUL file, then move to next file
CursorLeft * If we could move cursor left, see if we
* can do it again
JTrue RINGLOOP: * If we can, we are not in the NUL file,
* and move to next file
EndLine BegLine * If we could not move cursor left, test
* if line has any text
JTrue RINGLOOP: * If line has text it is not the NUL file
* but a single line file with text that
* had the cursor in column 2, move to next
* file
END: *ELSE test was false and we must be in
* the NUL file
Quit * Quit it
NextFile * Move to file we started in
* 36 bytes Fri 05-17-1991 10:33:44 (TH)

* 
* ----------------------------------------------------------------------
* @(h) CursorUp/Down Cursorleft, Fails if any single line file in ring
* has cursor in col 2
* ----------------------------------------------------------------------
@h MacroBegin
PrevFile
EditFile "NUL" Return
CursorRight
RINGLOOP:
NextFile
CursorDown CursorUp * pass all multi line
JTrue RINGLOOP:
CursorLeft
Jfalse RINGLOOP:
CursorLeft
JTrue RINGLOOP:
END:
Quit
NextFile
*
* 30 bytes Fri 05-17-1991 09:07:09 (TH)

* 
* ----------------------------------------------------------------------
* @(i) CursorDown/Up, Fails only if single line file in ring
* ----------------------------------------------------------------------
@i MacroBegin
PrevFile * Position to load NUL file
EditFile "NUL" Return * Load NUL file
RINGLOOP:
NextFile * Move to next file in ring
CursorDown CursorUp * Test if file has more than one line
JTrue RINGLOOP: * If if does, we are not in the
* NUL file, move to next file
END: *ELSE test was false and we must be in
* a file with only one line
Quit * Quit it
NextFile * Move to file we started in
*
* 21 bytes Sun 05-19-1991 11:48:37 (TH)

* 
* ----------------------------------------------------------------------
* @(j) Scratch Buffer CurrentFileName 2x, CursorDown/Up, Fastest RingLoop
* Technique that will not fail (John Goodman's Scratch Buffer
* technique use with CursorDown CursorUp)
* ----------------------------------------------------------------------

@j MacroBegin
UnMarkBlock * Unmark blocks
PrevFile * Position to load NUL file
EditFile "NUL" Return * Load NUL file
DropAnchor * Need a block marker for StoreScrBuff
StoreScrBuff * Create a buffer named
CurrentFileName * "path:\NULpath:\NUL" eg
CurrentFileName * "c:\nulc:\nul"
Return *
RINGLOOP: *
NextFile * Go to next file in ring
CursorDown CursorUp * Test if file has more than one line
JTrue RINGLOOP: * If if does, we are not in the
* NUL file, move to next file
GetScrBuff *ELSE try retrieving a buffer named
CurrentFileName * current file's name 2x, eg
CurrentFileName * "c:\current.extc:\current.ext"
Return *
JFalse RINGLOOP: * Buffer only exists for "c:\nulc:\nul"
* If test is false, we are not yet in
* the NUL file, move to next file
END: *ELSE test was true and we must be in
* the NUL file
Quit * Quit it
NextFile * Move to file we started in
*
* 34 bytes Sun 05-19-1991 01:02:05 (TH/JG)

* Tom Hogshead