In the UK, students are given certain candidate identification numbers when sittings exams. Please can you create a validator for two different types of identification number:
1. UCI: http://www.wjec.co.uk/index.php?nav=140
2. ULN: http://www.hesa.ac.uk/index.php/component/option,com_studrec/task,show_file/Itemid,233/mnl,07051/href,a%5E_%5Euln.html/
The input to the validator will be a candidate number like '68199 0 01 2058 G'.
The output from the validator will be TRUE (if valid and the checksum matches) or FALSE + error message (not valid, checksum does not match).
The validator should extend Zend_Validate_Abstract.
There should be a PHP Unit test class for each validator that will take a range of known GOOD and known BAD numbers, and validate each of them successfully.