Example #1
0
def generate(request):
    """
    Generate the grid and redirect to grid view
    """
    import sudoku
    import hashlib
    from sudoku.models import marshal_grid
    from django.http import HttpResponseRedirect
    from django.core.urlresolvers import reverse
    
    grid = sudoku.generate_sudoku()
    grid_str = marshal_grid(grid)
    grid_mask = marshal_grid(sudoku.masked_grid(grid, factor=2))
    grid_alias = hashlib.sha224(grid_str).hexdigest()
    
    ip_address = request.META['REMOTE_ADDR']
    if 'HTTP_X_FORWARDED_FOR' in request.META:
        ip_address = request.META['HTTP_X_FORWARDED_FOR']
    user_agent = request.META['HTTP_USER_AGENT']
    
    gs = GeneratedSudoku(alias=grid_alias)
    gs.ip_address = ip_address
    gs.user_agent = user_agent
    gs.sudoku_data = grid_str
    gs.sudoku_masked = grid_mask
    gs.save()

    return HttpResponseRedirect(reverse('sudoku-view', args=[grid_alias]))
Example #2
0
    def test_generate_sudoku(self):
        grid = sudoku.generate_sudoku(40)
        expected_unknown = 41
        actual_unknown = sum(1 for row in grid for e in row if e == ".")
        self.assertEqual(expected_unknown, actual_unknown)
        solution = sudoku.solve(grid)
        solved = sudoku.check_solution(solution)
        self.assertTrue(solved)

        grid = sudoku.generate_sudoku(1000)
        expected_unknown = 0
        actual_unknown = sum(1 for row in grid for e in row if e == ".")
        self.assertEqual(expected_unknown, actual_unknown)
        solution = sudoku.solve(grid)
        solved = sudoku.check_solution(solution)
        self.assertTrue(solved)

        grid = sudoku.generate_sudoku(0)
        expected_unknown = 81
        actual_unknown = sum(1 for row in grid for e in row if e == ".")
        self.assertEqual(expected_unknown, actual_unknown)
        solution = sudoku.solve(grid)
        solved = sudoku.check_solution(solution)
        self.assertTrue(solved)
Example #3
0
def test_generate_board():
    eq_(check_valid_board(sudoku.generate_sudoku()), True)
Example #4
0
def test_generate_sudoku_recurse():
    result = sudoku.generate_sudoku()
    eq_(result, NO_SHUFFLE_BOARD)
Example #5
0
 def test_gen(self):
     print "Testing sudoku 9x9"
     grid = sudoku.generate_sudoku()
     self.failUnlessEqual(sudoku.valid_grid(grid), True)