# `ADK.Eval.Case`
[🔗](https://github.com/zeroasterisk/adk-elixir/blob/main/lib/adk/eval/case.ex#L1)

Defines a single evaluation test case.

A case specifies an input message to send to an agent, a list of scorers
to evaluate the response, and optional metadata.

## Example

    ADK.Eval.Case.new(
      name: "greeting",
      input: "Hello!",
      scorers: [
        {ADK.Eval.Scorer.Contains, text: "hello", case_sensitive: false},
        {ADK.Eval.Scorer.ResponseLength, min: 5, max: 200}
      ],
      metadata: %{category: "basic"}
    )

# `scorer_config`

```elixir
@type scorer_config() :: {module(), keyword()}
```

# `t`

```elixir
@type t() :: %ADK.Eval.Case{
  input: String.t(),
  metadata: map(),
  name: String.t(),
  scorers: [scorer_config()]
}
```

# `new`

```elixir
@spec new(keyword()) :: t()
```

Create a new eval case.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
