mirror of
https://github.com/frohoff/ysoserial.git
synced 2026-09-27 01:11:53 +08:00
merge versions with identical test results
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import itertools
|
import itertools
|
||||||
import json
|
import json
|
||||||
import operator
|
import operator
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import subprocess
|
import subprocess
|
||||||
@@ -35,11 +36,26 @@ GET_VER = operator.itemgetter('java.version')
|
|||||||
GET_PAY = operator.itemgetter('payload')
|
GET_PAY = operator.itemgetter('payload')
|
||||||
|
|
||||||
by_payload = {payload:
|
by_payload = {payload:
|
||||||
{ver(version): status(list(o2)[0]['status'])
|
{ver(version): list(o2)[0]['status']
|
||||||
for version, o2 in itertools.groupby(sorted(o1, key=GET_VER), GET_VER)}
|
for version, o2 in itertools.groupby(sorted(o1, key=GET_VER), GET_VER)}
|
||||||
for payload, o1 in itertools.groupby(sorted(data, key=GET_PAY), GET_PAY)}
|
for payload, o1 in itertools.groupby(sorted(data, key=GET_PAY), GET_PAY)}
|
||||||
|
|
||||||
|
by_version = {ver(version):
|
||||||
|
{payload: list(o2)[0]['status']
|
||||||
|
for payload, o2 in itertools.groupby(sorted(o1, key=GET_PAY), GET_PAY)}
|
||||||
|
for version, o1 in itertools.groupby(sorted(data, key=GET_VER), GET_VER)}
|
||||||
|
|
||||||
|
sorted_ver = sorted(by_version.items(), key=lambda v: list(map(int, re.split(r'[._]', v[0]))))
|
||||||
|
|
||||||
|
ver_groups = [list(v for v, r in vers) for res, vers in itertools.groupby(sorted_ver, operator.itemgetter(1))]
|
||||||
|
|
||||||
|
ver_ranges = [[vs[0], vs[-1]] for vs in ver_groups]
|
||||||
|
|
||||||
|
|
||||||
|
print('\n'.join(repr(v) for v in ver_groups))
|
||||||
|
#
|
||||||
# print(repr(by_payload))
|
# print(repr(by_payload))
|
||||||
|
# print(repr(by_version))
|
||||||
|
|
||||||
vers = list(list(by_payload.items())[0][1].keys())
|
vers = list(list(by_payload.items())[0][1].keys())
|
||||||
|
|
||||||
@@ -47,8 +63,8 @@ vers = list(list(by_payload.items())[0][1].keys())
|
|||||||
|
|
||||||
md = pytablewriter.MarkdownTableWriter()
|
md = pytablewriter.MarkdownTableWriter()
|
||||||
md.table_name = ''
|
md.table_name = ''
|
||||||
md.header_list = [''] + vers
|
md.header_list = [''] + ['{} - {}'.format(vs, ve) if vs != ve else vs for vs, ve in ver_ranges]
|
||||||
md.value_matrix = [[p] + [o[v] for v in vers] for p, o in sorted(by_payload.items())]
|
md.value_matrix = [[p] + [status(o[vs]) for vs, ve in ver_ranges] for p, o in sorted(by_payload.items())]
|
||||||
md.margin = 1
|
md.margin = 1
|
||||||
|
|
||||||
md.write_table()
|
md.write_table()
|
||||||
|
|||||||
Reference in New Issue
Block a user