File: C:/Users/fred/anaconda3/Lib/site-packages/datashader/datashape/tests/test_promote.py
import pytest
from datashader.datashape import (
promote, Option, float64, int64, float32, optionify,
string, datetime_ as datetime, dshape)
def test_simple():
x = int64
y = float32
z = promote(x, y)
assert z == float64
def test_option():
x = int64
y = Option(float32)
z = promote(x, y)
assert z == Option(float64)
def test_no_promote_option():
x = int64
y = Option(float64)
z = promote(x, y, promote_option=False)
assert z == float64
def test_option_in_parent():
x = int64
y = Option(float32)
z = optionify(x, y, y)
assert z == y
@pytest.mark.parametrize('x,y,p,r',
[[string, string, True, string],
[string, string, False, string],
[Option(string),
Option(string),
True,
Option(string)],
[Option(string),
Option(string),
False,
Option(string)],
[Option(string),
string,
True,
Option(string)],
[Option(string),
string,
False,
string],
[Option(string),
dshape('?string'),
True,
Option(string)],
[dshape('?string'),
Option(string),
False,
Option(string)],
[dshape('string'),
Option(string),
True,
Option(string)],
[dshape('string'),
Option(string),
False,
string]])
def test_promote_string_with_option(x, y, p, r):
assert (promote(x, y, promote_option=p) ==
promote(y, x, promote_option=p) ==
r)
@pytest.mark.parametrize('x,y,p,r',
[[datetime, datetime, True, datetime],
[datetime, datetime, False, datetime],
[Option(datetime),
Option(datetime),
True,
Option(datetime)],
[Option(datetime),
Option(datetime),
False,
Option(datetime)],
[Option(datetime),
datetime,
True,
Option(datetime)],
[Option(datetime),
datetime,
False,
datetime],
[Option(datetime),
dshape('?datetime'),
True,
Option(datetime)],
[dshape('?datetime'),
Option(datetime),
False,
Option(datetime)],
[dshape('datetime'),
Option(datetime),
True,
Option(datetime)],
[dshape('datetime'),
Option(datetime),
False,
datetime]])
def test_promote_datetime_with_option(x, y, p, r):
assert (promote(x, y, promote_option=p) ==
promote(y, x, promote_option=p) ==
r)