def solve_main(event): try: puzzle_object = common.get_puzzle_from_event(event) except Exception as e: logger.error("Exception: {}".format(e)) response = create_response(500, json.dumps({'error': str(e)})) return response if not validate.validata_data_types(puzzle_object): logger.error('Puzzle was not validated due to wrong data types') response = create_response( 500, json.dumps( {'error': 'Puzzle was not validated due to wrong data types.'})) return response if not validate.validate_puzzle(puzzle_object): logger.error( 'Puzzle was not validated due to invalid row, column or grid.') response = create_response( 500, json.dumps({ 'error': 'Puzzle was not validated due to invalid row, column or grid.' })) return response solved_result = solve_puzzle(puzzle_object) if solved_result['status']: data = { 'status': 'Solved', 'message': 'Puzzle successfully solved.', 'puzzle_rows': solved_result['puzzle'] } else: data = { 'status': 'Unsolved', 'message': 'Puzzle could not be solved.', 'puzzle_rows': solved_result['puzzle'] } response = create_response(200, json.dumps(data)) return response
def test_validate_puzzle_duplicate_in_grid8(self, empty_puzzle): empty_puzzle[6][6] = 9 empty_puzzle[8][8] = 9 result = validate.validate_puzzle(empty_puzzle) assert not result, "Puzzle validation should not succeed as duplicates in grid 9."
def test_validate_puzzle_duplicate_in_grid0(self, empty_puzzle): empty_puzzle[0][0] = 1 empty_puzzle[2][2] = 1 result = validate.validate_puzzle(empty_puzzle) assert not result, "Puzzle validation should not succeed as duplicates in grid 1."
def test_validate_puzzle_duplicate_in_column8(self, empty_puzzle): empty_puzzle[0][8] = 9 empty_puzzle[8][8] = 9 result = validate.validate_puzzle(empty_puzzle) assert not result, "Puzzle validation should not succeed as duplicates in column 9."
def test_validate_puzzle_duplicate_in_row0(self, empty_puzzle): empty_puzzle[0][1] = 1 empty_puzzle[0][8] = 1 result = validate.validate_puzzle(empty_puzzle) assert not result, "Puzzle validation should not succeed as duplicates in row 1."
def test_validate_puzzle(valid_incomplete_puzzle): result = validate.validate_puzzle(valid_incomplete_puzzle) assert result, "Puzzle expected to be validated"