Further refining tests

isEmpty needs to play a bigger role in
analysing the control flow, currently
the tests are to reliant on an adequate
implementation of the datatype