new unit test
throw when the iter is invalid
update info