# `Tribunal.EvalCase`
[🔗](https://github.com/georgeguimaraes/tribunal/blob/v1.3.6/lib/tribunal/eval_case.ex#L1)

ExUnit integration for LLM evaluations.

## Usage

    defmodule MyApp.RAGEvalTest do
      use ExUnit.Case
      use Tribunal.EvalCase

      @moduletag :eval

      test "response is faithful" do
        response = MyApp.RAG.query("What's the return policy?")

        assert_contains response, "30 days"
        assert_faithful response, context: @docs, threshold: 0.8
        refute_hallucination response, context: @docs
      end
    end

## Dataset-Driven Tests

    defmodule MyApp.RAGEvalTest do
      use ExUnit.Case
      use Tribunal.EvalCase

      @moduletag :eval

      tribunal_eval "test/evals/datasets/questions.json",
        provider: {MyApp.RAG, :query}
    end

Run with: `mix test --only eval`

# `tribunal_eval`
*macro* 

Generates tests from a dataset file.

## Options

- `:provider` - `{Module, :function}` to call for each input
- `:defaults` - Default assertion options

---

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