complete and some test case