rewrite itoa and its unit test