Exemple #1
0
def test_vdeclarfilter_canonize_alias():
    m = MockMachine()
    f = VarDeclarationFilter(m)
    cases = [
        # exp   type  name  alias
        ('x', 'float', 'x', None),
        (['x', 'val'], ['std::set', 'float'], 'x', None),
        (['x', 'first', 'second'], ['std::pair', 'int', 'int'], 'x', None),
        ([['x', 'item'], 'key', 'val'], ['std::map', 'int', 'int'], 'x', None),
        ([['x', 'item'], ['key', 'first', 'second'], ['val', 'val']],
         ['std::map', ['std::pair', 'int', 'int'], ['std::set',
                                                    'int']], 'x', None),
        ('y', 'float', 'x', 'y'),
        (['x', 'y'], ['std::set', 'float'], 'x', [None, 'y']),
        (['y', 'first', 'second'], ['std::pair', 'int', 'int'], 'x', ['y']),
        ([['x', 'item'], 'y', 'val'], ['std::map', 'int',
                                       'int'], 'x', [None, 'y']),
        ([['x', 'ytem'], 'y', 'val'], ['std::map', 'int',
                                       'int'], 'x', [['x', 'ytem'], 'y']),
        ([['x', 'ytem'], ['key', 'f', 's'], ['data', 'val']],
         ['std::map', ['std::pair', 'int', 'int'],
          ['std::set', 'int']], 'x', [[None, 'ytem'], [None, 'f', 's'],
                                      'data']),
    ]
    for exp, t, name, alias in cases:
        obs = f.canonize_alias(t, name, alias=alias)
        yield assert_equal, exp, obs
Exemple #2
0
def test_vdeclarfilter_canonize_ui():
    m = MockMachine()
    f = VarDeclarationFilter(m)
    cases = [
        # exp   type  name  uilabel/tooltip
        ('foo', 'float', 'x', 'foo'),
        (['foo', ''], ['std::set', 'float'], 'x', 'foo'),
        (['foo', 'bar'], ['std::set', 'float'], 'x', ['foo', 'bar']),
        ([['foo', ''], ['', '', ''], ['', '']],
         ['std::map', ['std::pair', 'int', 'int'], ['std::set', 'int']],
         'x',
         'foo'),
        ([['foo', ''], ['bar', '', ''], ['', '']],
         ['std::map', ['std::pair', 'int', 'int'], ['std::set', 'int']],
         'x',
         ['foo', 'bar']),
        ([['foo', ''], ['bar', '', ''], ['baz', '']],
         ['std::map', ['std::pair', 'int', 'int'], ['std::set', 'int']],
         'x',
         ['foo', 'bar', 'baz']),
    ]
    for exp, t, name, x in cases:
        obs = f.canonize_uilabel(t, name, uilabel=x)
        yield assert_equal, exp, obs
        obs = f.canonize_tooltip(t, name, tooltip=x)
        yield assert_equal, exp, obs
Exemple #3
0
def test_vdeclarfilter_canonize_alias():
    m = MockMachine()
    f = VarDeclarationFilter(m)
    cases = [
        # exp   type  name  alias
        ('x', 'float', 'x', None),
        (['x', 'val'], ['std::set', 'float'], 'x', None),
        (['x', 'first', 'second'], ['std::pair', 'int', 'int'], 'x', None),
        ([['x', 'item'], 'key', 'val'], ['std::map', 'int', 'int'], 'x', None),
        ([['x', 'item'], ['key', 'first', 'second'], ['val', 'val']],
            ['std::map', ['std::pair', 'int', 'int'], ['std::set', 'int']],
            'x', None),
        ('y', 'float', 'x', 'y'),
        (['x', 'y'], ['std::set', 'float'], 'x', [None, 'y']),
        (['y', 'first', 'second'], ['std::pair', 'int', 'int'],
            'x', ['y']),
        ([['x', 'item'], 'y', 'val'], ['std::map', 'int', 'int'], 'x',
            [None, 'y']),
        ([['x', 'ytem'], 'y', 'val'], ['std::map', 'int', 'int'], 'x',
            [['x', 'ytem'], 'y']),
        ([['x', 'ytem'], ['key', 'f', 's'], ['data', 'val']],
            ['std::map', ['std::pair', 'int', 'int'], ['std::set', 'int']],
            'x', [[None, 'ytem'], [None, 'f', 's'], 'data']),
        ]
    for exp, t, name, alias in cases:
        obs = f.canonize_alias(t, name, alias=alias)
        yield assert_equal, exp, obs
Exemple #4
0
def test_vdeclarfilter():
    """Test VarDeclarationFilter"""
    m = MockMachine()
    f = VarDeclarationFilter(m)
    yield assert_false, f.isvalid("one ")

    statement, sep = "one two", "\n"
    yield assert_true, f.isvalid(statement)
    m.classes = [(0, "trader")]
    m.access = {"trader": "public"}
    # m.var_annotations = {'name': 'James Bond'}
    f.transform(statement, sep)
    yield assert_equal, m.var_annotations, None
Exemple #5
0
def test_vdeclarfilter_canonize_ui():
    m = MockMachine()
    f = VarDeclarationFilter(m)
    cases = [
        # exp   type  name  uilabel/tooltip
        ('foo', 'float', 'x', 'foo'),
        (['foo', ''], ['std::set', 'float'], 'x', 'foo'),
        (['foo', 'bar'], ['std::set', 'float'], 'x', ['foo', 'bar']),
        ([['foo', ''], ['', '', ''], ['', '']],
         ['std::map', ['std::pair', 'int', 'int'], ['std::set',
                                                    'int']], 'x', 'foo'),
        ([['foo', ''], ['bar', '', ''], ['', '']],
         ['std::map', ['std::pair', 'int', 'int'],
          ['std::set', 'int']], 'x', ['foo', 'bar']),
        ([['foo', ''], ['bar', '', ''], ['baz', '']],
         ['std::map', ['std::pair', 'int', 'int'],
          ['std::set', 'int']], 'x', ['foo', 'bar', 'baz']),
    ]
    for exp, t, name, x in cases:
        obs = f.canonize_uilabel(t, name, uilabel=x)
        yield assert_equal, exp, obs
        obs = f.canonize_tooltip(t, name, tooltip=x)
        yield assert_equal, exp, obs
Exemple #6
0
def test_vdeclarfilter():
    """Test VarDeclarationFilter"""
    m = MockMachine()
    f = VarDeclarationFilter(m)
    yield assert_false, f.isvalid("one ")

    statement, sep = "one two", "\n"
    yield assert_true, f.isvalid(statement)
    m.classes = [(0, "trader")]
    m.access = {"trader": "public"}
    # m.var_annotations = {'name': 'James Bond'}
    f.transform(statement, sep)
    yield assert_equal, m.var_annotations, None