### Related issues ###
*For our contributor*: please fill the reference to the related issues in your repository.

### Description
*For our contributor*: please fill the description of the changes proposed in the pull request.

### Reviewers
*For our contributor*: please @mentions of the person or team responsible for reviewing proposed changes.


### To go or not go
*For our reviewers*, please check if this pull request (only when all the boxes are checked you can approve):
- [ ] submitted to the right branch
- [ ] Description above is clear
- [ ] fix the issues above approperly
- [ ] has enough test code and passed the test
- [ ] has comprehensive documents (readme / user guide / notebook etc.) submitted together with the code if it's a new feature.

### Quality
*For our reviewers*, Before closing this PR, please give a score to this PR. This will help to improve the quality
- [ ] Excellent (all good)
- [ ] Good (one or two are not good)
- [ ] Acceptable (three or four are not good)
- [ ] To be improved

Criteria:
* utest should have consistent results between different runs.
* utest should try to cover all the route (control flow) of code 
* don’t add too much commits in each PR
* branch should only focus on specific task
* name of commit should be meaningful and specific
* comments in this MR is sufficient and clear
