Separate test source codes
Add .gitignore
Refactor against modified repo structure