reorganized all unit tests and fixed a bug with macro expansion