'T(X) - T2(Y)  -- does T(X) - T2(Y).X and return dT(X)
and T(X) +/- dT(Y)  -- does (in essence) (T(X).Y +/- dT(Y)).X
I.e., time differences of two times should have the scale of the
first time.  The one exception is UTC, which returns TAI.
There are no timescales for which this does not work.'

@pytest.mark.parametrize(('scale1', 'scale2'), list(itertools.product(TIME_SCALES, TIME_SCALES)))
def test_scales_for_time_minus_time(self, scale1, scale2):

    t1 = self.t[scale1]
    t2 = self.t[scale2]
    dt = (t1 - t2)
    if (scale1 in TIME_DELTA_SCALES):
        assert (dt.scale == scale1)
    else:
        assert (scale1 == 'utc')
        assert (dt.scale == 'tai')
    t1_recover_t2_scale = (t2 + dt)
    assert (t1_recover_t2_scale.scale == scale2)
    t1_recover = getattr(t1_recover_t2_scale, scale1)
    assert allclose_jd(t1_recover.jd, t1.jd)
    t2_recover_t1_scale = (t1 - dt)
    assert (t2_recover_t1_scale.scale == scale1)
    t2_recover = getattr(t2_recover_t1_scale, scale2)
    assert allclose_jd(t2_recover.jd, t2.jd)
