Refactor tests and split into separate files. Test for semantic version sorting then fix to use usort and version_compare instead of natsort.