Added documentation to surface.py, moved unit test to separate file in tests subdirectory