Shell sort with tests. Refactored tests to use randomly generated different data each run.