-
Notifications
You must be signed in to change notification settings - Fork 28
/
check.py
125 lines (110 loc) · 9.27 KB
/
check.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# this is a script for checking the format of the submitted file
# usage:
# pytest -s check.py --track 1,2,3
import os
import json
gold_keys = [
'10115809', '10729578', '10603375', '10608429', '10372549', '10267016', '10122235', '10193244', '10140791',
'10163406', '10248751', '10486526', '10346047', '10175066', '10049529', '10754275', '10112308', '10298131',
'10151741', '10311751', '10563745', '10258108', '10028315', '10246370', '10307667', '10165305', '10488713',
'10264141', '10395084', '10331181', '10070589', '10268375', '10073358', '10424767', '10464066', '10840443',
'10411906', '10642483', '10787421', '10280623', '10290764', '10311745', '10137923', '10258207', '10138903',
'10209025', '10032827', '10365842', '10772095', '10297723', '10035922', '10048311', '10349422', '10890160',
'10431177', '10684080', '10155943', '10266492', '10042235', '10810089', '10275183', '10433592', '10299275',
'10206718', '10708561', '10329555', '10259579', '10651497', '10240897', '10096931', '10299491', '10198861',
'10356623', '10364270', '10216174', '10043704', '10886878', '10215045', '10824397', '10279536', '10479239',
'10678228', '10112233', '10462427', '10702545', '10228448', '10240507', '10474698', '10819429', '10295273',
'10305098', '10466748', '10375956', '10711293', '10342011', '10267630', '10081187', '10345523', '10387023',
'10847204', '10004115', '10118153', '10033729', '10171899', '10116672', '10049143', '10170874', '10188926',
'10242600', '10315712', '10689699', '10174602', '10024025', '10300079', '10210158', '10132692', '10348756',
'10072190', '10271206', '10103346', '10198434', '10318379', '10148821', '10297019', '10854229', '10222983',
'10703642', '10065223', '10272596', '10321304', '10219395', '10292473', '10398436', '10148432', '10419241',
'10191761', '10214226', '10279923', '10352551', '10128565', '10100659', '10665419', '10042927', '10070641',
'10659670', '10283277', '10633521', '10328586', '10457195', '10416565', '10317985', '10293734', '10333432',
'10717549', '10165149', '10456217', '10145201', '10214049', '10230398', '10300649', '10266813', '10202875',
'10851766', '10286055', '10296931', '10778721', '10318691', '10027169', '10134898', '10336070', '10336204',
'10259643', '10355048', '10882444', '10236913', '10163223', '10386213', '10184970', '10751314', '10023161',
'10019833', '10235744', '10413267', '10319193', '10260506', '10305286', '10185063', '10767415', '10841491',
'10261672', '10337417', '10246651', '10468586', '10811952', '10182674', '10349221', '10240019', '10150763',
'10488268', '10469303', '10332456', '10104022', '10231641', '10733222', '10247675', '10580298', '10055575',
'10036695', '10131557', '10690905', '10692346', '10275725', '10289145', '10273089', '10285550', '10156677',
'10023958', '10297249', '10562545', '10217706', '10616871', '10116945', '10301927', '10509497', '10158184',
'10818189', '10715837', '10050725', '10295408', '10023144', '10306251', '10311752', '10791831', '10448091',
'10741121', '10335101', '10179615', '10738438', '10286547', '10633229', '10120689', '10121767', '10286156',
'10145590', '10109461', '10361330', '10267576', '10134031', '10350473', '10190180', '10027711', '10328334',
'10332933', '10215298', '10178524', '10326101', '10279380', '10303546', '10333151', '10250766', '10271527',
'10264219', '10270922', '10489208', '10243207', '10250045', '10664317', '10261150', '10059278', '10238733',
'10273975', '10734728', '10189787', '10791974', '10305541', '10202894', '10204313', '10306241', '10263119',
'10093609', '10865824', '10048087', '10264556', '10269480', '10316304', '10184294', '10003735', '10337309',
'10352594', '10831387', '10157100', '10713643', '10103930', '10198557', '10469477', '10291386', '10345784',
'10230094', '10333333', '10165591', '10162960', '10261332', '10373895', '10101176', '10406594', '10236622',
'10330793', '10828633', '10128151', '10461991', '10221293', '10347732', '10831293', '10352642', '10360126',
'10330685', '10296551', '10643441', '10007030', '10045220', '10308048', '10299881', '10656806', '10079035',
'10241914', '10281547', '10020232', '10244318', '10359717', '10400522', '10292931', '10479942', '10080668',
'10355873', '10231244', '10291034', '10191272', '10358802', '10380939', '10264502', '10019694', '10100121',
'10123268', '10332602', '10311921', '10339855', '10592510', '10298117', '10058329', '10343734', '10085071',
'10168663', '10004156', '10208382', '10318592', '10043643', '10035761', '10273856', '10303716', '10411864',
'10133506', '10042650', '10368724', '10406885', '10274372', '10358771', '10191220', '10363497', '10172348',
'10234224', '10137974', '10289915', '10263029', '10321571', '10235758', '10582828', '10247695', '10278610',
'10297732', '10246331', '10425421', '10292033', '10113063', '10783584', '10360298', '10122381', '10192483',
'10121865', '10192306', '10278785', '10326616', '10078738', '10343611', '10264736', '10134552', '10361933',
'10382185', '10041426', '10312349', '10859716', '10143757', '10758583', '10117211', '10750992', '10224619',
'10825034', '10545171', '10806712', '10814478', '10325760', '10389722', '10777257', '10360343', '10822228',
'10310449', '10750771', '10544700', '10318707', '10451034', '10358080', '10796110', '10084795', '10618309',
'10563546', '10412489', '10356747', '10117123', '10339795', '10793607', '10669788', '10308268', '10545851',
'10256123', '10500107', '10272994', '10514943', '10231666', '10521790', '10280794', '10333217', '10231546',
'10029614', '10472095', '10415425', '10172528', '10219552', '10527216', '10046681', '10149291', '10824755',
'10771643', '10802470', '10055722', '10311936', '10322643', '10214625', '10473536', '10116027', '10095901',
'10282632', '10263249', '10283870', '10629653', '10329156', '10890935', '10112815', '10272102', '10283263',
'10294898', '10271880', '10241360', '10882979', '10279639', '10140673', '10334253', '10634741', '10379595',
'10752146', '10834393', '10394518', '10729464', '10082190', '10498749', '10200972', '10504771', '10584027',
'10355549', '10546727', '10719692', '10200774', '10584886', '10685369', '10853668', '10438573', '10340306',
'10322531', '10824602', '10034084', '10337652', '10138908', '10733909', '10576269', '10773507', '10110537',
'10882816', '10231619', '10762294', '10487031', '10366391', '10305537', '10284692', '10302733', '10269674',
'10787176', '10626184', '10054415', '10348652', '10682460', '10522388', '10585844', '10580884', '10295369',
'10290401', '10234072', '10540517', '10084569', '10504359', '10250549', '10491248', '10298752', '10177232',
'10329009', '10319194', '10219687', '10603035', '10298532', '10217756', '10337900', '10432322', '10649672',
'10637556', '10301705', '10500954', '10344000', '10337389', '10789899', '10369765', '10358490', '10893242',
'10875531', '10214689', '10564164', '10627559', '10660775', '10610483', '10116967', '10628220', '10544627',
'10534713', '10300977', '10533124', '10451747', '10214609', '10194429', '10679976', '10737668', '10524076',
'10355804', '10019613', '10273736', '10756537', '10268144', '10342040', '10381219', '10244294', '10524642',
'10166179', '10868576', '10396012', '10617263', '10039761', '10235495', '10235834', '10371897', '10069794',
'10449900', '10111477', '10325924', '10814319', '10589377', '10591730', '10320473', '10862176', '10231596',
'10808721', '10595823', '10841862', '10359425', '10076179', '10321477', '10127189', '10334363', '10647572',
'10621320', '10511098', '10541090', '10329128', '10076396', '10841097', '10679915', '10256397', '10870274']
def test_track(track):
assert '1' in track or '2' in track or '3' in track, \
'track参数<{}>错误!需要至少测试一个赛道!请检查track参数!'.format(','.join(track))
def track1(path):
assert os.path.exists(path), '文件<{}>不存在!'.format(path)
with open(path, 'r', encoding='utf-8') as f:
data = json.load(f)
# check for right keys
pred_keys = list(data.keys())
assert set(pred_keys) == set(gold_keys), '预测的字典<{}>的键值和真实键值不一致!'.format(path)
def test_track1_task1(track):
if '1' in track:
track1('./Track1/Task1/submission.json')
def test_track1_task2(track):
if '1' in track:
track1('./Track1/Task2/submission.json')
# test for track2
def test_track2(track):
if '2' in track:
path = './Track2/生成摘要_test'
assert os.path.exists(path), '目录<{}>不存在!'.format(path)
# check for right keys
pred_keys = [file.replace('test_', '') for file in os.listdir(path) if file.startswith('test_')]
assert set(pred_keys) == set(gold_keys), '预测的字典<{}>的键值和真实键值不一致!'.format(path)
# test for track3
def test_track3(track):
if '3' in track:
path = './Track3/repo'
assert os.path.exists(path), '目录<{}>不存在!'.format(path)
path = './Track3/repo/run.sh'
assert os.path.exists(path), '文件<{}>不存在!'.format(path)
with open(path, 'r', encoding='utf-8') as f:
file = f.read()
params = ['--test_input_file', '--test_output_file']
for param in params:
assert param in file, '参数<{}>不存在!'.format(param)