;; -----------------------------------------------------------------------------

PROJECT 3: writing a graph service 
	
 FILES

   client.rkt	     : the client driver 
   simple-client.rkt : a simple client driver that can deal with graph-service-tests
   graph-service.rkt : the graph library 
   		     requires ../Graph/graph.rkt 

   in*.xml	: additional test cases 
   out*.xml	: the corresponding results 
   xdiff-xml    : diff for our xml files 
   xrun         : run all test cases 

   -------------------------------------------------------

 TO RUN: for N in [0 .. 9]

   $ ./graph-service.rkt & 

   followed by 

   $ ./xrun 

   which basically runs 

   $ ./client.rkt < inN.xml | xdiff-xml outN.xml -

   on all test cases N: 

   ./client.rkt : consume series of GraphDescriptions from stdin
   		  produces series of results on stdout  

   ./xdiff-xml file1 file2 : consume two XML files and determine diffs 

 test cases: 
   in<n>.xml    : the XML input file for test case n 
   out<n>.xml   : the expected XML output file for in<n>.xml
 
   0 : create graph with single edge, probe edges as path 
   1 : create two graphs, join two graphs, check a path 
   2 : attempt to create graph that violates triangle inequality 
   3 : create graph, inquiry about non-existing path for existing nodes 
   4 : create graph, inquiry about path for non-existing nodes 
   5 : create graph with multiple edges, probe for path with two edges 
   6 : like 2, followed by a query, which should give us a second error 
   7 : create one graph, 
       attempt to create graph that violates triangle inequality, symmetric to 2
       query first graph 
   8: another triangle failure 
   9: and yet another one 

ALSO: 
   $ ./graph-sevice.rkt &
   $ ./simple-client.rkt < graph-service-tests/inN.xml | xdiff-xml graph-service-tests/outN.xml -
   
   for N = 1, 2, 3

   tests like those they are supposed to turn in 

