Allow empty productions.
Add test infrastructure
Add tests for production