mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-07-02 14:27:31 +00:00
first commit
This commit is contained in:
106
.venv/Lib/site-packages/altair/expr/tests/test_expr.py
Normal file
106
.venv/Lib/site-packages/altair/expr/tests/test_expr.py
Normal file
@ -0,0 +1,106 @@
|
||||
import operator
|
||||
|
||||
import pytest
|
||||
|
||||
from ... import expr
|
||||
from .. import datum
|
||||
|
||||
|
||||
def test_unary_operations():
|
||||
OP_MAP = {"-": operator.neg, "+": operator.pos}
|
||||
for op, func in OP_MAP.items():
|
||||
z = func(datum.xxx)
|
||||
assert repr(z) == "({}datum.xxx)".format(op)
|
||||
|
||||
|
||||
def test_binary_operations():
|
||||
OP_MAP = {
|
||||
"+": operator.add,
|
||||
"-": operator.sub,
|
||||
"*": operator.mul,
|
||||
"/": operator.truediv,
|
||||
"%": operator.mod,
|
||||
"===": operator.eq,
|
||||
"<": operator.lt,
|
||||
"<=": operator.le,
|
||||
">": operator.gt,
|
||||
">=": operator.ge,
|
||||
"!==": operator.ne,
|
||||
"&&": operator.and_,
|
||||
"||": operator.or_,
|
||||
}
|
||||
# When these are on the RHS, the opposite is evaluated instead.
|
||||
INEQ_REVERSE = {
|
||||
">": "<",
|
||||
"<": ">",
|
||||
"<=": ">=",
|
||||
">=": "<=",
|
||||
"===": "===",
|
||||
"!==": "!==",
|
||||
}
|
||||
for op, func in OP_MAP.items():
|
||||
z1 = func(datum.xxx, 2)
|
||||
assert repr(z1) == "(datum.xxx {} 2)".format(op)
|
||||
|
||||
z2 = func(2, datum.xxx)
|
||||
if op in INEQ_REVERSE:
|
||||
assert repr(z2) == "(datum.xxx {} 2)".format(INEQ_REVERSE[op])
|
||||
else:
|
||||
assert repr(z2) == "(2 {} datum.xxx)".format(op)
|
||||
|
||||
z3 = func(datum.xxx, datum.yyy)
|
||||
assert repr(z3) == "(datum.xxx {} datum.yyy)".format(op)
|
||||
|
||||
|
||||
def test_abs():
|
||||
z = abs(datum.xxx)
|
||||
assert repr(z) == "abs(datum.xxx)"
|
||||
|
||||
|
||||
def test_expr_funcs():
|
||||
"""test all functions defined in expr.funcs"""
|
||||
name_map = {val: key for key, val in expr.funcs.NAME_MAP.items()}
|
||||
for funcname in expr.funcs.__all__:
|
||||
func = getattr(expr, funcname)
|
||||
z = func(datum.xxx)
|
||||
assert repr(z) == "{}(datum.xxx)".format(name_map.get(funcname, funcname))
|
||||
|
||||
|
||||
def test_expr_consts():
|
||||
"""Test all constants defined in expr.consts"""
|
||||
name_map = {val: key for key, val in expr.consts.NAME_MAP.items()}
|
||||
for constname in expr.consts.__all__:
|
||||
const = getattr(expr, constname)
|
||||
z = const * datum.xxx
|
||||
assert repr(z) == "({} * datum.xxx)".format(name_map.get(constname, constname))
|
||||
|
||||
|
||||
def test_json_reprs():
|
||||
"""Test JSON representations of special values"""
|
||||
assert repr(datum.xxx == None) == "(datum.xxx === null)" # noqa: E711
|
||||
assert repr(datum.xxx == False) == "(datum.xxx === false)" # noqa: E712
|
||||
assert repr(datum.xxx == True) == "(datum.xxx === true)" # noqa: E712
|
||||
|
||||
|
||||
def test_to_dict():
|
||||
ex = datum.xxx * 2 > datum.yyy
|
||||
assert ex.to_dict() == repr(ex)
|
||||
|
||||
|
||||
def test_copy():
|
||||
ex = datum.xxx * 2 > abs(datum.yyy)
|
||||
ex_copy = ex.copy()
|
||||
assert ex.to_dict() == ex_copy.to_dict()
|
||||
|
||||
|
||||
def test_datum_getattr():
|
||||
x = datum["foo"]
|
||||
assert repr(x) == "datum['foo']"
|
||||
|
||||
with pytest.raises(AttributeError):
|
||||
datum.__magic__
|
||||
|
||||
|
||||
def test_expression_getitem():
|
||||
x = datum.foo[0]
|
||||
assert repr(x) == "datum.foo[0]"
|
Reference in New Issue
Block a user