[POC] implement test_arithmetic.py
State: closed

There are a ton of scattered arithmetic tests for Index/Series/DataFrame that _should_ be testing the same things, but in fact are haphazard.  Fixing this given the current structure would entail an enormous about of code duplication.

This PR if a proof of concept for gathering all those tests in one test_arithmetic.py file, parametrizing them, and ensuring that the relevant behavior is identical across arraylike classes.

As Datetime/Timedelta/Period EA come online, the case for de-duplication will be even stronger.

In this form it is really easy to track (via xfails) what behavior needs fixing.

Labels:
name: Refactor
description: Internal refactoring of code
name: Testing
description: pandas testing functions or related to the test suite

Comments:
@jbrockmendel : So even though this is a POC, you still want to merge this, right?
If there is consensus about this goal, yes.
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/22033?src=pr&el=h1) Report
> Merging [#22033](https://codecov.io/gh/pandas-dev/pandas/pull/22033?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/0b7a08b70444056f964bb636a74ac41ca0058d37?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/22033/graphs/tree.svg?token=eZ4WkYLtcO&width=650&src=pr&height=150)](https://codecov.io/gh/pandas-dev/pandas/pull/22033?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #22033      +/-   ##
==========================================
+ Coverage   92.06%   92.06%   +<.01%     
==========================================
  Files         170      170              
  Lines       50705    50720      +15     
==========================================
+ Hits        46680    46695      +15     
  Misses       4025     4025
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.47% <100%> (ø)` | :arrow_up: |
| #single | `42.3% <13.33%> (-0.01%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/22033?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/util/testing.py](https://codecov.io/gh/pandas-dev/pandas/pull/22033/diff?src=pr&el=tree#diff-cGFuZGFzL3V0aWwvdGVzdGluZy5weQ==) | `85.9% <100%> (+0.21%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/22033?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/22033?src=pr&el=footer). Last update [0b7a08b...50e05ea](https://codecov.io/gh/pandas-dev/pandas/pull/22033?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

@jreback related to discussion about test refactoring.
The idea would be to add the arrays as when they exist?

general idea looks good to me
> The idea would be to add the arrays as when they exist?

Yes.  Shorter term the idea is focused on de-duplication and testing cases that aren't currently covered for all the relevant classes.
all for this!