#!/usr/bin/env python3 """Compare origin placement and exactly-one-neighbor spread behavior.""" import itertools import json try: from . import test_simple_block_parity as harness except ImportError: import test_simple_block_parity as harness def corpus(facts,placement): states=facts['states'];get=lambda name:facts['defaults']['minecraft:'+name] directions=[(0,-1,0),(0,1,0),(0,0,-1),(0,0,1),(-1,0,0),(1,0,0)] def spread(block=None,**extra): value={'type':'random_neighbor_spread','block':block if block is not None else {'id':'stone'},'accepted_neighbors':'stone','can_replace':{'type':'true'},'attempts':1,'xz_offset':0,'y_offset':0};value.update(extra);return value def case(definition,**extra): value={'definition':json.dumps(definition,separators=(',',':')),'mode':'feature','origin':[0,64,0],'legacy':False,'seed':0,'world_seed':1,'fail':-1,'reject':0,'brightness':15,'fallback':get('air'),'states':[],'repeats':2};value.update(extra);return value for state in states:yield case(spread(state)) for mask,attempts,fail,reject in itertools.product(range(64),[1,2,3],[-1,*range(9)],[0,1,3]): initial=[[x,64+y,z,get('stone') if mask&(1<