Shiva: HMMER testsuite

#####################################################################
I. Compiled test drivers.
---------------------------------------------------------------------

- A test driver runs with no arguments, gives no output, 
  and returns EXIT_SUCCESS if the test passes.
- If the test fails, the test driver calls Die() to print a diagnostic on
  stderr, and exit with EXIT_FAILURE.
- The -v option always activates rudimentary verbose output on stdout.


Current tests:
---------------

alignalign_test
	Exercises P7ViterbiAlignAlignment() -- alignment of a fixed
	multiple alignment to an HMM. Aligns fn3 seed alignment to
	fn3 model, compares to results of aligning sequences individually;
	if an excessive number of discrepancies are detected, test
	fails.
	Other files: fn3.seed, fn3.hmm.

evd_test    
	Exercises code in histogram.c, especially EVD fitting
	Default generates 1000 EVD samples; fits EVD; tests that fitted
        parameters are reasonably close to real ones. 

masks_test  
	Exercises code in masks.c 
	Default runs XNU on a sequence and compares to a known result.

parsingviterbi_test
	Exercises P7ParsingViterbi() in core_algorithms.c
	Runs Fn3 model against titin using both standard Viterbi and
	ParsingViterbi; compares results for identity.

tophits_test
	Exercises tophits.c
	Generates random scores in three tiers (good, middling, bad).
	Uses RegisterHit() API; FullSort's them; tests that they
	end up in the right number/order.

trace_test
	Exercises traceback code in core_algorithms.c
	Runs a simple HMM against synthetic sequences designed to
	exercise all possible arrangements of transitions, and
	does a TraceVerify() to be sure resulting trace is internally
	consistent. 

viterbi_exercise
	Exercises P7Viterbi and P7SmallViterbi in core_algorithms.c
	Configures Fn3 model into various modes; generates 100 random
 	seqs from each configuration; does P7Viterbi and P7SmallViterbi
	alignments, TraceVerify()'s them, checks them for identity.

weeviterbi_test
	Exercises P7WeeViterbi in core_algorithms.c
	Runs RRM model against two subsequences of human U1A;
	compares Viterbi trace to WeeViterbi trace.
	
#####################################################################
II. Scripted test drivers.
---------------------------------------------------------------------

Optiontests.pl
	Runs every documented option for every program, to be
	sure they're really connected up.


#####################################################################
Obsolete: kept in RCS archive only for reproducibility of old results
---------------------------------------------------------------------

fitting_test.c	Tests of EVD and Gaussian histogram fitting code.
		17 June 1997





