Example #1
0
def p_full_rule(p):
    '''full_rule : rule_params ASSIGN_RULE terms'''
    global atn
    pars = p[1]
    terms = add_up_attributes(pars, p[3])
    label = pars[0]
    if label in atn:
        atn[label] = unite(atn[label], terms)
    else:
        atn[label] = terms
Example #2
0
    def test_unite(self):
        tests = [
            (
            (
                {
                    1: [('KILO', None, 0.0, 2), ('ECHO', None, 0.0, const.STATE_END)],
                    2: [('YANKEE', None, 0.0, const.STATE_END)],
                    const.STATE_CONJ_A1: [('QUEBEC', None, 0.0, const.STATE_END)]
                },
                {
                    1: [('SIERRA', None, 0.0, 2)],
                    2: [('WHISKY', None, 0.0, const.STATE_END)],
                }
            ),
            {
                1: [('KILO', None, 0.0, 2), ('ECHO', None, 0.0, const.STATE_END), ('SIERRA', None, 0.0, 3)],
                2: [('YANKEE', None, 0.0, const.STATE_END)],
                3: [('WHISKY', None, 0.0, const.STATE_END)],
                const.STATE_CONJ_A1: [('QUEBEC', None, 0.0, const.STATE_END)]
            }
            ),
            (
            (
                {
                    1: [('KILO', None, 0.0, 2), ('ECHO', None, 0.0, const.STATE_END)],
                    2: [('YANKEE', None, 0.0, const.STATE_END)],
                },
                {
                    1: [('SIERRA', None, 0.0, 2)],
                    2: [('WHISKY', None, 0.0, const.STATE_END)],
                    const.STATE_CONJ_A1: [('QUEBEC', None, 0.0, const.STATE_END)]
                }
            ),
            {
                1: [('KILO', None, 0.0, 2), ('ECHO', None, 0.0, const.STATE_END), ('SIERRA', None, 0.0, 3)],
                2: [('YANKEE', None, 0.0, const.STATE_END)],
                3: [('WHISKY', None, 0.0, const.STATE_END)],
                const.STATE_CONJ_A1: [('QUEBEC', None, 0.0, const.STATE_END)]
            }
            ),
        ]
        for par, target in tests:
            actual = gtools.unite(par[0], par[1])
            self.assertDictEqual(actual, target)

        self.assertRaises(Exception, gtools.unite, ((
            (
                {
                    1: [('KILO', None, 0.0, 2), ('ECHO', None, 0.0, const.STATE_END)],
                    2: [('YANKEE', None, 0.0, const.STATE_END)],
                },
                {
                    1: [('SIERRA', None, 0.0, 2)],
                    2: [('WHISKY', None, 0.0, const.STATE_END)],
                    const.STATE_CONJ_A1: [('QUEBEC', None, 0.0, const.STATE_END)]
                }
            ),
            {
                1: [('KILO', None, 0.0, 2), ('ECHO', None, 0.0, const.STATE_END), ('SIERRA', None, 0.0, 3)],
                2: [('YANKEE', None, 0.0, const.STATE_END)],
                3: [('WHISKY', None, 0.0, const.STATE_END)],
                const.STATE_CONJ_A1: [('QUEBEC', None, 0.0, const.STATE_END)]
            }
            )))