merge sort complete with struct test cases