Esempio n. 1
0
def Test(f, name, num):
    rules = reg.Rules.get(name)
    handlers = reg.Handlers.get(name, [])

    ts0 = time.strftime('%H:%M:%S')

    numpass = 0
    numfail = {
        '1': 0,
    }
    ki = None
    try:
        for case in Polymer.ModelsChooser(rules, num).Gen():
            sentence = ''.join([v[1] for v in case])
            ts = time.time()
            intent = api.Do(AGENT, USERID, sentence)
            if intent.NAME == name:
                # TODO: match handlers
                #resp = intent.Go()
                msg = '{}, {}ms, +pass, {} {}'.format(
                    time.strftime('%H:%M:%S'),
                    int((time.time() - ts) * 1000),
                    name, sentence,
                )
                numpass += 1
            else:
                msg = '{}, {}ms, -fail, 1(intent dismatch), {} => {} {}'.format(
                    time.strftime('%H:%M:%S'),
                    int((time.time() - ts) * 1000),
                    name, intent.NAME, sentence,
                )
                numfail['1'] += 1
            f.write(msg+'\n')
            print(msg)
    except KeyboardInterrupt as e:
        ki = e
    tfail = 0
    for k in numfail:
        tfail += numfail[k]
    total = numpass+tfail
    msg = 'Passed {}, Total {}, {}, {}-{}'.format(
        str(round(numpass/total*100, 1))+'%' if total else 'N/A',
        total, name,
        ts0, time.strftime('%H:%M:%S'),
    )
    msg = '{}\n{}\n{}'.format(
        '---', msg, '---',
    )
    f.write(msg+'\n')
    print(msg)
    if ki:
        raise ki
    return numpass, tfail, numfail
Esempio n. 2
0
    '夜间',
    '晚',
    '夜',
])

a = Polymer(
    ['前', '后', '前后'],
    [Polymer.Range(0, 101), Polymer.RangeCN(0, 100)],
    Polymer(日期),
)
day = Polymer(['前', '大前', '当', '昨', '今', '明', '后', '大后'], ['天', '日'])
week = Polymer(['上上', '上', '本', '这', '这个', '当', '下', '下下'], ['周', '礼拜'])
month = Polymer(['上上', '上', '上半', '本', '这', '这个', '当', '下', '下半', '下下'], ['月'])
xun = Polymer(['上', '中', '下'], ['旬'])
year = Polymer(['今', '当', '本', '这', '去', '后', '前', '大前', '后', '大后'], ['年'])

models = [
    sys_time,
    sys_period,
    day,
    week,
    month,
    xun,
    year,
    common,
    a,
]

user_t = Polymer(models)
时间段 = Polymer.ModelsChooser(models, 100)