game of life - solution and tests