물 분자 전체를 실제 물 영역 안에 포함한 r3 시제품 검증
This commit is contained in:
@@ -13,11 +13,13 @@ def read(path):
|
||||
|
||||
|
||||
if __name__=='__main__':
|
||||
a=read(PROJECT/'stages/08-scenes/r2/artifact.json')
|
||||
b=read(PROJECT/'stages/09-entities/r2/artifact.json')
|
||||
a=read(PROJECT/'stages/08-scenes/r3/artifact.json')
|
||||
b=read(PROJECT/'stages/09-entities/r3/artifact.json')
|
||||
schema=read(ROOT/'contracts/artifact.schema.json')
|
||||
jsonschema.validate(a,schema)
|
||||
jsonschema.validate(b,schema)
|
||||
assert a["revision"]==b["revision"]==3
|
||||
assert {"stage_id":"08-scenes","revision":3} in b["inputs"]
|
||||
cuts=read(PROJECT/'stages/07-cuts/r1/artifact.json')['payload']
|
||||
ids=[c['id'] for c in cuts['cuts']]
|
||||
assert len(ids)==31 and len(cuts['captions'])==38 and cuts['narration_duration_ms']==110560
|
||||
@@ -41,6 +43,12 @@ if __name__=='__main__':
|
||||
preview=a['payload']['preview']
|
||||
source=preview['scene_file']
|
||||
assert source['verified'] and hashlib.sha256((ROOT/source['path']).read_bytes()).hexdigest()==source['sha256']
|
||||
assert (ROOT/source['path']).is_relative_to(PROJECT/'stages/08-scenes/r3')
|
||||
model=read(PROJECT/'stages/08-scenes/r3/model-check.json')
|
||||
assert model['source_sha256']==source['sha256']
|
||||
containment=model['water_containment']
|
||||
assert containment['frames']==705 and containment['logical_frame_start']==2468 and containment['logical_frame_end']==3172
|
||||
assert min(containment['minimum_axis_margin'])>=.03 and containment['minimum_projected_margin_px']>0
|
||||
samples=preview['samples']
|
||||
assert len(samples)==6 and len({s['id'] for s in samples})==6
|
||||
assets=[dict(path=source['path'],sha256=source['sha256'])]
|
||||
@@ -48,7 +56,7 @@ if __name__=='__main__':
|
||||
for sample in samples:
|
||||
media=sample['media']
|
||||
path=ROOT/media['path']
|
||||
assert path.is_relative_to(PROJECT/'stages/08-scenes/r2') and media['verified']
|
||||
assert path.is_relative_to(PROJECT/'stages/08-scenes/r3') and media['verified']
|
||||
evidence_path=path.parent/'evidence.json'
|
||||
evidence=read(evidence_path)
|
||||
assert evidence['media']==media and evidence['scene_file']==source and evidence['render_profile']==preview['render_profile']
|
||||
@@ -64,12 +72,12 @@ if __name__=='__main__':
|
||||
for f in (path,evidence_path):
|
||||
assets.append(dict(path=f.relative_to(ROOT).as_posix(),sha256=hashlib.sha256(f.read_bytes()).hexdigest()))
|
||||
result=dict(result='GREEN',cuts=31,captions=38,connections=30,total_ms=110560,fps=50,total_frames=5528,profile=preview['render_profile'],source_sha256=source['sha256'],samples=6,visual_review_frames=frame_reviews,actual_assets=assets,scenes_approval='pending',formal_10_12='not_started')
|
||||
motion=read(PROJECT/'stages/08-scenes/r2/motion-check.json')
|
||||
motion=read(PROJECT/'stages/08-scenes/r3/motion-check.json')
|
||||
assert motion['source_sha256']==source['sha256'] and len(motion['views'])==3
|
||||
for view in motion['views']:
|
||||
assert all(change>0 for change in view['mean_absolute_pixel_change'])
|
||||
path=ROOT/view['mobile_view_path']
|
||||
assert hashlib.sha256(path.read_bytes()).hexdigest()==view['mobile_view_sha256']
|
||||
assets.append(dict(path=view['mobile_view_path'],sha256=view['mobile_view_sha256']))
|
||||
(PROJECT/'stages/08-scenes/r2/design-check.json').write_text(json.dumps(result,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
|
||||
(PROJECT/'stages/08-scenes/r3/design-check.json').write_text(json.dumps(result,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
|
||||
print('DESIGN_GREEN: 31 cuts, 30 boundaries, 38 captions, 6 actual samples')
|
||||
|
||||
Reference in New Issue
Block a user