input: Write a python function to solve a linear programming problem using the pulp library.
  assert solve_lp_problem() == {'Status': 'Optimal', 'x': 0.00, 'y': 0.50}
  assert solve_lp_problem({'coefficients': [1, 4], 'constraints': [2, 3, 0, 1]}) == {'Status': 'Optimal', 'x': 0.50, 'y': 0.00}
  assert solve_lp_problem({'coefficients': [3, 5], 'constraints': [1, 2, 2, 4]}) == {'Status': 'Optimal', 'x': 0.00, 'y': 0.25}
output: def solve_lp_problem(params=None):
      from pulp import LpMaximize, LpProblem, LpVariable, lpSum, value
      
      if params is None:
          coefficients = [1, 2]
          constraints = [1, 1, 0, 1]
      else:
          coefficients = params['coefficients']
          constraints = params['constraints']
  
      prob = LpProblem("Maximize_Profit", LpMaximize)
  
      x = LpVariable('x', lowBound=0)
      y = LpVariable('y', lowBound=0)
  
      prob += lpSum([coefficients[0] * x, coefficients[1] * y])
  
      prob += constraints[0] * x + constraints[1] * y <= 1
      prob += constraints[2] * x + constraints[3] * y <= 1
  
      prob.solve()
  
      result = {
          'Status': prob.status,
          'x': value(x),
          'y': value(y)
      }
  
      if result['Status'] == 1:
          result['Status'] = 'Optimal'
      else:
          result['Status'] = 'Not Optimal'
  
      return result