Example #1
0
    def find_first_synchronised_flash_step_index(
            self,
            debugger: Debugger = Debugger(enabled=False),
    ) -> int:
        """
        >>> GridExtended.from_grid_text('''
        ...     5483143223
        ...     2745854711
        ...     5264556173
        ...     6141336146
        ...     6357385478
        ...     4167524645
        ...     2176841721
        ...     6882881134
        ...     4846848554
        ...     5283751526
        ... ''').find_first_synchronised_flash_step_index()
        195
        """
        grid = deepcopy(self)
        for step_index in debugger.stepping(count(1)):
            debugger.report_if(step_index)
            grid.step()
            if grid.did_all_flash:
                return step_index

        raise Exception("Run out of numbers!")
Example #2
0
 def get_disk_checksum(
     self,
     size: int,
     initial: str,
     debugger: Debugger,
 ) -> str:
     """
     >>> DataGenerator().get_disk_checksum(20, "10000")
     '01100'
     """
     debugger.report_if("Getting disk checksum")
     disk = self.fill_disk(size, initial, debugger=debugger.sub_debugger())
     return self.get_checksum(disk, debugger=debugger.sub_debugger())