q1&2&3

unit test function