test_bench.py 1.86 KB
Newer Older
quyuan's avatar
add ci  
quyuan committed
1
2
3
4
5
6
7
8
9
10
11
12
13
"""
bench
"""
import os
import shutil
import json
from lib import calculate_score
import pytest
from conf import conf

code_path = os.environ.get('GITHUB_WORKSPACE')
pdf_dev_path = conf.conf["pdf_dev_path"]
pdf_res_path = conf.conf["pdf_res_path"]
quyuan's avatar
add ci  
quyuan committed
14
15
16
last_simscore = 0
last_editdistance = 0
last_bleu = 0
quyuan's avatar
add ci  
quyuan committed
17

quyuan's avatar
add ci  
quyuan committed
18
19
20
21
class TestBench():
    """
    test bench
    """
quyuan's avatar
add ci  
quyuan committed
22
    def test_ci_ben(self):
quyuan's avatar
add ci  
quyuan committed
23
24
25
26
27
28
29
30
        """
        ci benchmark
        """
        try:
            fr = open(os.path.join(pdf_dev_path, "result.json"), "r", encoding="utf-8")
            lines = fr.readlines()
            last_line = lines[-1].strip()
            last_score = json.loads(last_line)
quyuan's avatar
add ci  
quyuan committed
31
32
33
            last_simscore = last_score["average_sim_score"]
            last_editdistance = last_score["average_edit_distance"]
            last_bleu = last_score["average_bleu_score"]
quyuan's avatar
add ci  
quyuan committed
34
        except IOError:
quyuan's avatar
add ci  
quyuan committed
35
            print ("result.json not exist")
quyuan's avatar
add ci  
quyuan committed
36
        os.system(f"python tests/test_cli/lib/pre_clean.py --tool_name mineru --download_dir {pdf_dev_path}")
quyuan's avatar
add ci  
quyuan committed
37
38
        now_score = get_score()
        print ("now_score:", now_score)
quyuan's avatar
add ci  
quyuan committed
39
40
        if not os.path.exists(os.path.join(pdf_dev_path, "ci")):
            os.makedirs(os.path.join(pdf_dev_path, "ci"), exist_ok=True)
quyuan's avatar
add ci  
quyuan committed
41
42
        fw = open(os.path.join(pdf_dev_path, "ci", "result.json"), "w+", encoding="utf-8")
        fw.write(json.dumps(now_score) + "\n")
quyuan's avatar
add ci  
quyuan committed
43
44
45
        now_simscore = now_score["average_sim_score"]
        now_editdistance = now_score["average_edit_distance"]
        now_bleu = now_score["average_bleu_score"]
quyuan's avatar
add ci  
quyuan committed
46
47
48
        assert last_simscore <= now_simscore
        assert last_editdistance <= now_editdistance
        assert last_bleu <= now_bleu
quyuan's avatar
add ci  
quyuan committed
49
50
51
52
53
54


def get_score():
    """
    get score
    """
quyuan's avatar
add ci  
quyuan committed
55
56
    score = calculate_score.Scoring(os.path.join(pdf_dev_path, "result.json"))
    score.calculate_similarity_total("mineru", pdf_dev_path)
quyuan's avatar
add ci  
quyuan committed
57
58
59
60
    res = score.summary_scores()
    return res