#!/usr/bin/env python3 """Compare native effect eligibility, notification bodies, pending sets and passenger packets.""" import argparse import json import os from pathlib import Path import platform import subprocess import random try: from . import lab, test_rust_parity as base except ImportError: import lab import test_rust_parity as base def corpus(): rng=random.Random(0x4e4f54494659) durations=[-2147483648,-2,-1,0,1,20,200,2147483647] amps=[-1,0,1,2,255,256,2147483647] floats=[0,0x80000000,0x3f000000,0x3f800000,0xbf800000,0x7f800000,0x7fc00000] def state(**kw): v=dict(key=4,duration=20,amplifier=1,ambient=False,visible=True,icon=True,hidden=-1,factor=0x3f000000,previous=0);v.update(kw);return v def config(**kw): v=dict(states=[state(key=i) for i in range(6)],level=0,client=False,removed=False,dirty=False,tags=[False]*3,attributes=0,routes=[0,1],holders=[0,1,2],passengers=[0,2,1,0],connections=[0,1],entity=42);v.update(kw);return v def op(name,a=4,b=0,**kw): v=dict(op=name,a=a,b=b,source=-1,partial=0x3f000000,list=[4,5],reapply=True);v.update(kw);return v def row(**kw): v=dict(hashes=[0,1,2,3,0,0],attribute_hashes=[0,31,64],initial=config(),after=config(states=[state(key=i,duration=-1,amplifier=9,ambient=True,visible=False,icon=False) for i in range(6)],attributes=1,routes=[1,0],holders=[2,0,1],passengers=[1,0],connections=[1,0],entity=-13,dirty=None),setup=[op('pending-add',0,i) for i in range(3)]+[op('pending-add',1,2)],ops=[op('add'),op('force',5),op('all')],fail=-1,mutate=-1,mutations=[op('put',4,5)]);v.update(kw);return v for bits in range(8): for effect in range(6): for mutate in range(-1,3): for fail in range(-1,3): yield row(initial=config(tags=[bool(bits&(1<