Fig. 6: The test_line() function
test_line() was probably the most difficult piece of code to get to work, relying as it did
on so many steps previous steps to have executed correctly for it to do likewise. It also
exposes what I acknowledge to be a flaw in the initial design of the XML files. The
problem is one of functionality: if a user enters a price of 2,500, it is highly unlikely that
he or she will find very many computers for exactly that price. It is more likely that the
intended meaning is less than or equal to 2,500 . Similarly, when someone requires a
plumber who is available from 8am on a weekday morning, it should be obvious that all
of the plumbers who start work before 8am are equally available. This issue came to a
head when trying to define how one would find a plumber at, say, 10pm, since there is no
truly efficient way to define a timespan in the current XML setup. test_line() currently
has a series of fixes to make a guess at what sort of test should be performed on a
43