tests for exercises 15.3-4
upstream merge