Exemplo n.º 1
0
def test_time_arithmetics():
    t1 = api.time('18:00')
    t2 = api.time('19:12')
    i1 = api.interval(minutes=3)

    for expr in [t1 - t2, t2 - t1]:
        assert isinstance(expr, ir.IntervalScalar)
        assert isinstance(expr.op(), ops.TimeDiff)
        assert expr.type() == dt.Interval('s', dt.int32)

    for expr in [t1 - i1, t2 - i1]:
        assert isinstance(expr, ir.TimeScalar)
        assert isinstance(expr.op(), ops.TimeSub)

    for expr in [t1 + i1, t2 + i1]:
        assert isinstance(expr, ir.TimeScalar)
        assert isinstance(expr.op(), ops.TimeAdd)
Exemplo n.º 2
0
        'MICROSECOND',
        'ns',
        'nanosecond',
        'NANOSECOND',
    ],
)
def test_timestamp_truncate(table, operand, unit):
    expr = operand(table).truncate(unit)
    assert isinstance(expr, ir.TimestampValue)
    assert isinstance(expr.op(), ops.TimestampTruncate)


@pytest.mark.parametrize(
    'operand', [lambda t: api.date('2018-01-01'), lambda t: t.j]
)
@pytest.mark.parametrize('unit', ['Y', 'Q', 'M', 'D', 'W'])
def test_date_truncate(table, operand, unit):
    expr = operand(table).truncate(unit)
    assert isinstance(expr, ir.DateValue)
    assert isinstance(expr.op(), ops.DateTruncate)


@pytest.mark.parametrize(
    'operand', [lambda t: api.time('18:00'), lambda t: t.k]
)
@pytest.mark.parametrize('unit', ['h', 'm', 's', 'ms', 'us', 'ns'])
def test_time_truncate(table, operand, unit):
    expr = operand(table).truncate(unit)
    assert isinstance(expr, ir.TimeValue)
    assert isinstance(expr.op(), ops.TimeTruncate)
Exemplo n.º 3
0
        'us',
        'microsecond',
        'MICROSECOND',
        'ns',
        'nanosecond',
        'NANOSECOND',
    ],
)
def test_timestamp_truncate(table, operand, unit):
    expr = operand(table).truncate(unit)
    assert isinstance(expr, ir.TimestampValue)
    assert isinstance(expr.op(), ops.TimestampTruncate)


@pytest.mark.parametrize('operand',
                         [lambda t: api.date('2018-01-01'), lambda t: t.j])
@pytest.mark.parametrize('unit', ['Y', 'Q', 'M', 'D', 'W'])
def test_date_truncate(table, operand, unit):
    expr = operand(table).truncate(unit)
    assert isinstance(expr, ir.DateValue)
    assert isinstance(expr.op(), ops.DateTruncate)


@pytest.mark.parametrize('operand',
                         [lambda t: api.time('18:00'), lambda t: t.k])
@pytest.mark.parametrize('unit', ['h', 'm', 's', 'ms', 'us', 'ns'])
def test_time_truncate(table, operand, unit):
    expr = operand(table).truncate(unit)
    assert isinstance(expr, ir.TimeValue)
    assert isinstance(expr.op(), ops.TimeTruncate)
Exemplo n.º 4
0
def test_timestamp_truncate(table, operand, unit):
    expr = operand(table).truncate(unit)
    assert isinstance(expr, ir.TimestampValue)
    assert isinstance(expr.op(), ops.TimestampTruncate)


@pytest.mark.parametrize('operand', [
    lambda t: api.date('2018-01-01'),
    lambda t: t.j,
])
@pytest.mark.parametrize('unit', [
    'Y', 'Q', 'M', 'D', 'W',
])
def test_date_truncate(table, operand, unit):
    expr = operand(table).truncate(unit)
    assert isinstance(expr, ir.DateValue)
    assert isinstance(expr.op(), ops.DateTruncate)


@pytest.mark.parametrize('operand', [
    lambda t: api.time('18:00'),
    lambda t: t.k
])
@pytest.mark.parametrize('unit', [
    'h', 'm', 's', 'ms', 'us', 'ns'
])
def test_time_truncate(table, operand, unit):
    expr = operand(table).truncate(unit)
    assert isinstance(expr, ir.TimeValue)
    assert isinstance(expr.op(), ops.TimeTruncate)