complete solutions and tests upto problem 22