#!/usr/bin/env python3 """Compare vine attachment priority, support queries and ordered writes.""" 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,0,-1),(0,0,1),(-1,0,0),(1,0,0)] def case(**extra): value={'definition':'{"type":"vines"}','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 range(len(states)): yield case(states=[[0,64,0,state],[0,65,0,get('stone')]]) for x,y,z in directions:yield case(states=[[x,64+y,z,state]],repeats=1) for mask,origin,legacy,seed,fail,reject in itertools.product(range(32), [[0,64,0],[2147483647,2147483647,2147483647],[-2147483648,-2147483648,-2147483648]], [False,True],[0,-1],[-1,0,1,2,3,4,5,6,7],[0,1,3]): wrap=lambda n:(n+2**31)%2**32-2**31 initial=[[*[wrap(origin[i]+d[i]) for i in range(3)],get('stone') if mask&(1<