TST/CLN: parametrize coercion tests
- [ ] progress towards #18706 
- [ ] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

This is not yet finished but wanted to share progress in case of feedback. The main thing I'm questioning is the need to use the `` test_has_comprehensive_tests`` method in ``CoercionBase``. If we want to keep I would need to refactor, but I'm curious if others even find it necessary given that there are often just blank tests being created in subclasses to make that test pass