gaoluyang
10 小时以前 e40a608ef9bf51db294d8eefada6a8e2e80cebca
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
import json
from pathlib import Path
 
plan = json.loads(Path('scripts/sop-qc/inspection-plan.json').read_text(encoding='utf-8'))
schemes = plan['schemes']
def scheme(number):
    return next(s for s in schemes if s['code'].endswith('-'+number))
def item(number, name):
    return next(i for i in scheme(number)['items'] if i['name']==name)
 
assert len(schemes)==231
assert len({s['code'] for s in schemes})==231
assert all(s['items'] for s in schemes)
assert '8.0%' in item('001','水分')['requirement']
assert '99.7' not in item('001','水分')['requirement']
assert '5.0-7.0' in item('071','pH值')['requirement']
assert 'JJG' not in item('071','pH值')['requirement']
assert '10^(4)' in item('217','菌落总数')['requirement']
assert all(item('185',n)['requirement'] for n in ['色泽','滋气味','形态'])
assert scheme('219')['status']==1
assert not scheme('219')['remote_material_matches']
assert all(i['result_type']==3 and i['threshold_min'] is None and i['threshold_max'] is None for s in schemes for i in s['items'])
assert all(s['status']==1 for s in schemes if any(not i['requirement'] for i in s['items']))
assert all(len(s['name'])<=100 for s in schemes)
for s in schemes:
    for i in s['items']:
        chunks=[i['requirement'][n:n+255] for n in range(0,len(i['requirement']),255)]
        assert ''.join(chunks)==i['requirement']
print('PASS: source coverage, unique scheme codes, representative standards, superscripts, uncertain-product isolation, pending-review status, complete continuation text')