Add test suites and enhance argument parsing