<think>
Okay, I need to implement the line_cost and basket_cost functions as per the given interface. Let's start with line_cost. The function is supposed to calculate the cost of one line, which is the unit price multiplied by the quantity. So, the formula should be price * quantity. But wait, the problem says that line_cost returns the unit price times the quantity. So, that's straightforward. But I need to make sure that the inputs are integers and handle any possible errors. Oh, the contract says that the function should raise a ValueError for invalid arguments. But the problem says that the inputs are integers, so maybe I don't need to check for that. Wait, the user says that the function should raise ValueError if the arguments are invalid. But the interface says that price and quantity are integers. So maybe I should check if they are positive? Or maybe the contract allows for zero or negative values? The problem says that the basket is empty, but for line_cost, maybe quantity can be zero? Let me check the problem statement again.

The problem says that line_cost returns the unit price times the quantity. So, if quantity is zero, the line cost is zero. But the problem doesn't mention any restrictions on the inputs. However, the user's interface says that the function should raise ValueError for invalid arguments. But the problem says that the inputs are integers. So perhaps the function should check if price and quantity are non-negative? Or maybe the problem allows for negative quantities? Wait, the problem says that the basket is empty, but for line_cost, maybe the quantity can be zero. But the problem says that the function should return the unit price times the quantity. So, I think the function should just multiply them, but the user's interface says that the function should raise ValueError if the arguments are invalid. But the problem doesn't specify what's considered invalid. However, the user's instruction says that the function should raise ValueError with a short message for invalid arguments. But the problem says that the inputs are integers. So maybe the function should check if price and quantity are non-negative? Or maybe the problem allows for zero. Hmm, but the problem says that the basket is empty, but line_cost is for a single line. So, perhaps the function should not check for invalid arguments, but the user's interface says that it should. Wait, the user's instruction says that the function should raise ValueError for invalid arguments. But the problem says that the inputs are integers. So maybe the function should check if price and quantity are non-negative? Or maybe the problem allows for zero. But the problem says that the line cost is unit price times quantity. So, if quantity is zero, the line cost is zero. So, perhaps the function should not check for invalid arguments, but the user's interface says that it should. Wait, the user's instruction says that the function should raise ValueError if the arguments are invalid. But the problem says that the inputs are integers. So maybe the function should check if price and quantity are non-negative? Or maybe the problem allows for negative values. But the problem says that the basket is empty, but line_cost is for a line. So, perhaps the function should not check for invalid arguments, but the user's interface says that it should. Hmm, this is a bit confusing. But the user's instruction says that the function should raise ValueError for invalid arguments. So, perhaps the function should check if price and quantity are non-negative. But the problem says that the inputs are integers. So, maybe the function should check if price and quantity are non-negative. Otherwise, it's invalid. So, in the code, I should check if price and quantity are non-negative. If not, raise ValueError. But the problem says that the inputs