TST: Remove groupby/test_function.py
- [ ] closes #xxxx (Replace xxxx with the GitHub issue number)
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

This finishes up the removal of test_function.py from the groupby tests. With the exception of `test_groupby_non_arithmetic_agg_int_like_precision` (which is moved to other files here), the tests that remained fall into two (and partially overlapping) camps:

 - Tests for `numeric_only`
 - Tests that use the fixture `groupby_func`, which goes over every groupby operation

For the first, the options I considered were creating `test_numeric_only.py` or split it up into various other files such as `test_reductions.py`, `test_cumlative.py`, and some others. Similarly, for tests that use `groupby_func` that don't fit in other files, I considered creating `test_all_methods.py` (which can be renamed to something better) or split up the tests into several different files.

I'm completely on the fence here. Breaking up a parameterized test and duplicating code across multiple files seems pretty bad. While I don't love having `test_all_methods` (it's sort of a catch-all), at first it seemed to me that it is less bad than breaking up the parameterized tests. But then grepping around, it appears that there are only three tests across all of groupby that would go in `test_all_methods`. Perhaps this is something we can expand on later - but maybe since there are so few tests it's okay to break these up?

Any ideas here are very much welcome.

cc @jbrockmendel @mroeschke 
Thanks @rhshadrach  > > Breaking up a parameterized test and duplicating code across multiple files seems pretty bad. While I don't love having test_all_methods (it's sort of a catch-all), at first it seemed to me that it is less bad than breaking up the parameterized tests.
> 
> IMO I think in the future this could be rolled into a potential refactor of `test_groupby.py` as a file testing "groupby scenarios that should work with all methods"

Sounds good - `test_groupby` is my next target; I've always been under the impression that tests here should be for something like "All groupby attributes that aren't ops and don't have a more specific location". E.g. `len(df.groupby(...))` or `df.groupby(...).groups`. I think it makes sense to roll `test_all_methods` into here.