Make Series[datetime64] - pd.NaT behave like DatetimeIndex - pd.NaT
State: closed

- [x] closes #18808
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry


Labels:
name: Datetime
description: Datetime data dtype
name: Missing-data
description: np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate

Comments:
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18960?src=pr&el=h1) Report
> Merging [#18960](https://codecov.io/gh/pandas-dev/pandas/pull/18960?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/0e3c797c4c12fa04fd745e595e822886e917b316?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `100%`.

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

```diff
@@            Coverage Diff             @@
##           master   #18960      +/-   ##
==========================================
+ Coverage   91.55%   91.57%   +0.02%     
==========================================
  Files         150      150              
  Lines       48939    48945       +6     
==========================================
+ Hits        44805    44821      +16     
+ Misses       4134     4124      -10
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `89.93% <100%> (+0.02%)` | :arrow_up: |
| #single | `41.75% <25%> (-0.01%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/18960?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/ops.py](https://codecov.io/gh/pandas-dev/pandas/pull/18960/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvb3BzLnB5) | `90.33% <100%> (+0.09%)` | :arrow_up: |
| [pandas/util/testing.py](https://codecov.io/gh/pandas-dev/pandas/pull/18960/diff?src=pr&el=tree#diff-cGFuZGFzL3V0aWwvdGVzdGluZy5weQ==) | `84.74% <0%> (-0.22%)` | :arrow_down: |
| [pandas/plotting/\_converter.py](https://codecov.io/gh/pandas-dev/pandas/pull/18960/diff?src=pr&el=tree#diff-cGFuZGFzL3Bsb3R0aW5nL19jb252ZXJ0ZXIucHk=) | `66.95% <0%> (+1.73%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18960?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/18960?src=pr&el=footer). Last update [0e3c797...9ac970d](https://codecov.io/gh/pandas-dev/pandas/pull/18960?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

Alright, the CI is turnaround is going to keep me off your back for a while.  In the interim, this and #18959 are ready to within the margin of error.  If the stars align #17746 may be there too.
Alright!  We're down to 3 inconsistencies between Series[datetime64] and DatetimeIndex arithmetic.  This, one where DatetimeIndex behavior is wrong, and one where a ruling is needed (but I strongly suspect Series behavior is wrong) #18850.
Appveyor error is complaining that the assert_produces_warning(PerformanceWarning) are instead giving off DeprecationWarning.
@jbrockmendel yes I see that. trying to figure out why that is happening. we are not catching a deprecation warning on windows somewhere. not sure if you have a windows box?
I'll get started on the new crop of comments.  In the meantime, #18831 may be ready.
closing in favor of #19024