Exemplo n.º 1
0
def test_as_root_rep_already_set():
    q = atlas_xaod_query_ast_visitor()
    node = ast.parse('1/1')
    v = rh.cpp_ttree_rep('junk', 'dude', gc_scope_top_level())
    node.rep = v  # type: ignore

    assert v is q.get_as_ROOT(node)
Exemplo n.º 2
0
def test_name():
    'This should fail b.c. name never gets a rep'
    q = atlas_xaod_query_ast_visitor()
    n = ast.Name(id='a')

    with pytest.raises(Exception) as e:
        q.get_rep(n)

    assert 'Internal' in str(e)
Exemplo n.º 3
0
def test_complex_number_not_understood():
    if sys.version_info >= (3, 8):
        import cmath  # NOQA
        c = complex(1, 2)
        node = ast.Constant(value=c, kind=None)

        q = atlas_xaod_query_ast_visitor()
        with pytest.raises(Exception) as e:
            q.get_rep(node)

        assert 'complex' in str(e)
Exemplo n.º 4
0
def test_as_root_as_single_column():
    q = atlas_xaod_query_ast_visitor()
    node = ast.parse('1/1')
    value_obj = crep.cpp_value('i', gc_scope_top_level(), ctyp.terminal('int'))
    sequence = crep.cpp_sequence(
        value_obj,
        crep.cpp_value('i', gc_scope_top_level(), ctyp.terminal('int')),
        gc_scope_top_level())
    node.rep = sequence  # type: ignore
    as_root = q.get_as_ROOT(node)

    assert isinstance(as_root, rh.cpp_ttree_rep)
Exemplo n.º 5
0
def test_compare_string_var():
    q = atlas_xaod_query_ast_visitor()
    node = ast.parse('e == "hi"').body[0].value  # type: ignore

    node.left.rep = crep.cpp_value('e', gc_scope_top_level(),
                                   ctyp.terminal('string'))  # type: ignore

    r = q.get_rep(node)

    assert isinstance(r, crep.cpp_value)
    assert r.cpp_type().type == 'bool'
    assert r.as_cpp() == '(e=="hi")'
Exemplo n.º 6
0
def test_subscript():
    q = atlas_xaod_query_ast_visitor()
    our_a = ast.Name(id='a')
    our_a.rep = crep.cpp_collection('jets', gc_scope_top_level(),
                                    ctyp.collection(
                                        ctyp.terminal('int')))  # type: ignore
    node = ast_parse_with_replacement('a[10]', {
        'a': our_a
    }).body[0].value  # type: ignore
    as_root = q.get_rep(node)

    assert isinstance(as_root, crep.cpp_value)
    assert str(as_root.cpp_type()) == 'int'
    assert as_root.as_cpp() == 'jets.at(10)'
Exemplo n.º 7
0
def test_as_root_as_dict():
    q = atlas_xaod_query_ast_visitor()
    node = ast.parse('1/1')
    dict_obj = crep.cpp_dict(
        {
            ast.Constant(value='hi'):
            crep.cpp_value('i', gc_scope_top_level(), ctyp.terminal('int'))
        }, gc_scope_top_level())
    sequence = crep.cpp_sequence(
        dict_obj,  # type: ignore
        crep.cpp_value('i', gc_scope_top_level(), ctyp.terminal('int')),
        gc_scope_top_level())
    node.rep = sequence  # type: ignore
    as_root = q.get_as_ROOT(node)

    assert isinstance(as_root, rh.cpp_ttree_rep)
Exemplo n.º 8
0
 def get_visitor_obj(self) -> query_ast_visitor:
     return atlas_xaod_query_ast_visitor()
Exemplo n.º 9
0
def test_binary_mult_return_type_1():
    q = atlas_xaod_query_ast_visitor()
    r = q.get_rep(ast.parse('1.2*1').body[0].value)  # type: ignore

    assert isinstance(r, crep.cpp_value)
    assert r.cpp_type().type == 'double'
Exemplo n.º 10
0
def test_bool_None():
    q = atlas_xaod_query_ast_visitor()
    with pytest.raises(ValueError) as e:
        q.get_rep(ast.parse("None").body[0].value)  # type: ignore

    assert 'None' in str(e)
Exemplo n.º 11
0
def test_bool_false():
    q = atlas_xaod_query_ast_visitor()
    r = q.get_rep(ast.parse("False").body[0].value)  # type: ignore
    assert isinstance(r, crep.cpp_value)
    assert r.cpp_type().type == 'bool'
    assert r.as_cpp() == 'false'
Exemplo n.º 12
0
def test_string():
    q = atlas_xaod_query_ast_visitor()
    r = q.get_rep(ast.parse("'hi there'").body[0].value)  # type: ignore
    assert isinstance(r, crep.cpp_value)
    assert r.cpp_type().type == 'string'
    assert r.as_cpp() == '"hi there"'
Exemplo n.º 13
0
def test_int():
    q = atlas_xaod_query_ast_visitor()
    r = q.get_rep(ast.parse("3").body[0].value)  # type: ignore
    assert isinstance(r, crep.cpp_value)
    assert r.cpp_type().type == 'int'
    assert r.as_cpp() == '3'