コード例 #1
0
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
コード例 #2
0
    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."
コード例 #3
0
    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."
コード例 #4
0
    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."
コード例 #5
0
    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."
コード例 #6
0
def test_validate_puzzle(valid_incomplete_puzzle):
    result = validate.validate_puzzle(valid_incomplete_puzzle)
    assert result, "Puzzle expected to be validated"