input: Write a python function to evaluate if a given Sudoku board is valid.
  assert evaluate_suduku([[5,3,4,6,7,8,9,1,2],[6,7,2,1,9,5,3,4,8],[1,9,8,3,4,2,5,6,7],[8,5,9,7,6,1,4,2,3],[4,2,6,8,5,3,7,9,1],[7,1,3,9,2,4,8,5,6],[9,6,1,5,3,7,2,8,4],[2,8,7,4,1,9,6,3,5],[3,4,5,2,8,6,1,7,9]]) == True
  assert evaluate_suduku([[5,3,4,6,7,8,9,1,2],[6,7,2,1,9,5,3,4,8],[1,9,8,3,4,2,5,6,7],[8,5,9,7,6,1,4,2,3],[4,2,6,8,5,3,7,9,1],[7,1,3,9,2,4,8,5,6],[9,6,1,5,3,7,2,8,4],[2,8,7,4,1,9,6,3,5],[3,4,5,2,8,6,1,7,8]]) == False
  assert evaluate_suduku([[5,3,4,6,7,8,9,1,2],[6,7,2,1,9,5,3,4,8],[1,9,8,3,4,2,5,6,7],[8,5,9,7,6,1,4,2,3],[4,2,6,8,5,3,7,9,1],[7,1,3,9,2,4,8,5,6],[9,6,1,5,3,7,2,8,4],[2,8,7,4,1,9,6,3,5],[3,4,5,2,8,6,1,7,9]]) == True
output: def evaluate_suduku(board):
      def is_valid_group(group):
          return len(group) == len(set(group)) and all(1 <= x <= 9 for x in group)
  
      for row in board:
          if not is_valid_group(row):
              return False
  
      for col in range(9):
          if not is_valid_group([board[row][col] for row in range(9)]):
              return False
  
      for box_row in range(0, 9, 3):
          for box_col in range(0, 9, 3):
              box = [board[r][c] for r in range(box_row, box_row + 3) for c in range(box_col, box_col + 3)]
              if not is_valid_group(box):
                  return False
  
      return True