## Problem Description and Formulation

The bath store produces two products: rubber ducks and toy boats. The profit per rubber duck is $2, and the profit per toy boat is $4. The production of each product requires preparation and testing time. Specifically:

- Each rubber duck requires 5 minutes of preparation and 3 minutes of testing.
- Each toy boat requires 8 minutes of preparation and 2 minutes of testing.

The store has limited weekly resources:
- 1000 minutes available for preparation.
- 700 minutes available for testing.

The goal is to determine the optimal number of rubber ducks and toy boats the store should produce to maximize profit.

## Mathematical Formulation

Let \(R\) be the number of rubber ducks and \(T\) be the number of toy boats.

The objective function to maximize profit is:
\[ \text{Maximize:} \quad 2R + 4T \]

Subject to the constraints:
\[ 5R + 8T \leq 1000 \] (Preparation time constraint)
\[ 3R + 2T \leq 700 \] (Testing time constraint)
\[ R \geq 0, T \geq 0 \] (Non-negativity constraints)

## Gurobi Code

```python
import gurobi

def solve_bath_store_problem():
    # Create a new model
    model = gurobi.Model()

    # Define variables
    R = model.addVar(name="rubber_ducks", lb=0, ub=None, obj=2)
    T = model.addVar(name="toy_boats", lb=0, ub=None, obj=4)

    # Add constraints
    model.addConstr(R * 5 + T * 8 <= 1000, name="preparation_time")
    model.addConstr(R * 3 + T * 2 <= 700, name="testing_time")

    # Solve the model
    model.optimize()

    # Check if the model is optimized
    if model.status == gurobi.GRB.Status.OPTIMAL:
        print(f"Optimal solution found. Rubber ducks: {R.varValue}, Toy boats: {T.varValue}")
        print(f"Max Profit: {model.objVal}")
    else:
        print("No optimal solution found.")

# Run the function
solve_bath_store_problem()
```

This code defines a linear programming problem with Gurobi, where we aim to maximize the profit by deciding the optimal number of rubber ducks and toy boats to produce, given the constraints on preparation and testing times. The solution will provide the number of each product to make in order to maximize profit, or indicate if no feasible solution exists.