def test_timestamp_arithmetics(): ts1 = api.timestamp(datetime.datetime.now()) ts2 = api.timestamp(datetime.datetime.today()) i1 = api.interval(minutes=30) # TODO: raise for unsupported operations too for expr in [ts2 - ts1, ts1 - ts2]: assert isinstance(expr, ir.IntervalScalar) assert isinstance(expr.op(), ops.TimestampDiff) assert expr.type() == dt.Interval('s', dt.int32) for expr in [ts1 - i1, ts2 - i1]: assert isinstance(expr, ir.TimestampScalar) assert isinstance(expr.op(), ops.TimestampSub) for expr in [ts1 + i1, ts2 + i1]: assert isinstance(expr, ir.TimestampScalar) assert isinstance(expr.op(), ops.TimestampAdd)
assert isinstance(a, ir.DateValue) assert isinstance(b, ir.DateValue) assert isinstance(a_, ir.DateValue) assert isinstance(i, ir.IntervalValue) assert isinstance(expr, ir.BooleanValue) def test_interval_column_name(table): c = table.i expr = (c - c).name('foo') assert expr._name == 'foo' @pytest.mark.parametrize( 'operand', [lambda t: api.timestamp(datetime.datetime.now()), lambda t: t.i], ids=['column', 'literal'], ) @pytest.mark.parametrize( 'unit', [ 'Y', 'y', 'year', 'YEAR', 'YYYY', 'SYYYY', 'YYY', 'YY', 'Q', 'q',