please choose better names for unit testing, also please add a few more meaningful cases