Repository: confident-ai/deepeval
Issue: MultimodalToolCorrectnessMetric cannot accept MLLMTestCase
Root cause: Validation Gap

**Describe the bug**
`MultimodalToolCorrectnessMetric` raises a `ValueError:` when running the test with `MLLMTestCase`

This happens because the MultimodalToolCorrectnessMetric's method `mesure` uses the `check_llm_test_case_params` function. 

```
def measure(
        self,
        test_case: MLLMTestCase,
        _show_indicator: bool = True,
        _in_component: bool = False,
    ) -> float:
        check_llm_test_case_params(test_case, self._required_params, self)
```

This function rejects all non-`LLMTestCase` objects.

**To Reproduce**
Run the following minimal script:

```
from deepeval.metrics import MultimodalToolCorrectnessMetric
from deepeval.test_case import MLLMTestCase, ToolCall


test_case = MLLMTestCase(
    input=["What's in this image?"],
    actual_output=["The image shows a pair of running shoes."],
    tools_called=[
        ToolCall(name="ImageAnalysis"),
        ToolCall(name="ToolQuery")
    ],
    expected_tools=[
        ToolCall(name="ImageAnalysis")
    ]
)

metric = MultimodalToolCorrectnessMetric(threshold=0.5)
metric.measure(test_case)
```
Observed behavior:
Raising the `ValueError: Unable to evaluate test cases that are not of type 'LLMTestCase' using the non-conversational 'Tool Correctness' metric.`

**Expected behavior**
The metric should successfully evaluate `MLLMTestCase` objects and return a score based on tool correctness.

**Screenshots**
N/A

**Desktop (please complete the following information):**
 - OS: Windows 11
 - Browser N/A
 - Version 3.6.4

**Additional context**
The issue originates in `check_llm_test_case_params(test_case, self._required_params, self)` within deepeval/metrics/utils.py

```
if isinstance(test_case, LLMTestCase) is False:
        error_str = f"Unable to evaluate test cases that are not of type 'LLMTestCase' using the non-conversational '{metric.__name__}' metric."
        metric.error = error_str
        raise ValueError(error_str)
```
Possible solution
Add a new function in the `utils.py` module. Something like this:

```
def check_mllm_test_case_parameters(
    test_case: MLLMTestCase,
    test_case_params: List[MLLMTestCaseParams],
    metric: Union[BaseMetric, BaseArenaMetric],
):

    if isinstance(test_case, MLLMTestCase) is False:
        error_str = f"Unable to evaluate test cases that are not of type 'MLLMTestCase' using the multimodal '{metric.__name__}' metric."
        metric.error = error_str
        raise ValueError(error_str)

    missing_params = []
    for param in test_case_params:
        if getattr(test_case, param.value) is None:
            missing_params.append(f"'{param.value}'")

    if missing_params:
        if len(missing_params) == 1:
            missing_params_str = missing_params[0]
        elif len(missing_params) == 2:
            missing_params_str = " and ".join(missing_params)
        else:
            missing_params_str = (
                ", ".join(missing_params[:-1]) + ", and " + missing_params[-1]
            )

        error_str = f"{missing_params_str} cannot be None for the '{metric.__name__}' metric"
        metric.error = error_str
        raise MissingTestCaseParamsError(error_str) 
```
Import and change the function in the `multimodal_tool_correctness.py` from `check_llm_test_case_params` to `check_mllm_test_case_parameters`