Best Python code snippet using hypothesis
CollectionGoal.py
Source:CollectionGoal.py  
...32        '''33        if self.__drop_off =={}:  # find all drop off locations, its tile ID's and goal blocks34            self.__find_drop_off_locations(grid_world)35        # Go through each drop zone, and check if the blocks are there in the right order36        is_satisfied, progress = self.__check_completion(grid_world)37        # Progress in percentage38        self.__progress = progress / sum([len(goal_blocks)\39            for goal_blocks in self.__drop_off.values()])40        return is_satisfied41    def __find_drop_off_locations(self, grid_world:GridWorld):42        goal_blocks = {}  # dict with as key the zone nr and values list of ghostly goal blocks43        all_objs = grid_world.environment_objects44        for obj_id, obj in all_objs.items():  # go through all objects45            if "drop_zone_nr" in obj.properties.keys():  # check if the object is part of a drop zone46                zone_nr = obj.properties["drop_zone_nr"]  # obtain the zone number47                if obj.properties["is_goal_block"]:  # check if the object is a ghostly goal block48                    if zone_nr in goal_blocks.keys():  # create or add to the list49                        goal_blocks[zone_nr].append(obj)50                    else:51                        goal_blocks[zone_nr] = [obj]52        self.__drop_off:dict = {}53        for zone_nr in goal_blocks.keys():  # go through all drop of zones and fill the drop_off dict54            # Instantiate the zone's dict.55            self.__drop_off[zone_nr] = {}56            # Obtain the zone's goal blocks.57            blocks = goal_blocks[zone_nr].copy()58            # The number of blocks is the maximum the max number blocks to collect for this zone.59            max_rank = len(blocks)60            # Find the 'bottom' location61            bottom_loc = (-np.inf, -np.inf)62            for block in blocks:63                if block.location[1] > bottom_loc[1]:64                    bottom_loc = block.location65            # Now loop through blocks lists and add them to their appropriate ranks66            for rank in range(max_rank):67                loc = (bottom_loc[0], bottom_loc[1] - rank)68                # find the block at that location69                for block in blocks:70                    if block.location == loc:71                        # Add to self.drop_off72                        self.__drop_off[zone_nr][rank] = [loc, block.visualize_shape, block.visualize_colour, None]73    def __check_completion(self, grid_world:GridWorld):74        # Get the current tick number75        curr_tick = grid_world.current_nr_ticks76        # loop through all zones, check the blocks and set the tick if satisfied77        for zone_nr, goal_blocks in self.__drop_off.items():78            # Go through all ranks of this drop off zone79            for rank, block_data in goal_blocks.items():80                loc = block_data[0]  # the location, needed to find blocks here81                shape = block_data[1]  # the desired shape82                colour = block_data[2]  # the desired colour83                tick = block_data[3]84                # Retrieve all objects, the object ids at the location and obtain all BW4T Blocks from it85                all_objs = grid_world.environment_objects86                obj_ids = grid_world.get_objects_in_range(loc, object_type=EnvObject, sense_range=0)87                blocks = [all_objs[obj_id] for obj_id in obj_ids...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
