| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | --help shows usage | 0s | |
| ✓ PASS | --version shows version | 0s | |
| ✓ PASS | mlx --help shows usage | 0s | |
| ✓ PASS | invalid option rejected | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | basic single prompt | 1s | |
| ✓ PASS | single prompt with instructions | 1s | |
| ✓ PASS | pipe mode | 0s | |
| ✓ PASS | temperature 0.0 | 1s | |
| ✓ PASS | temperature 1.0 | 0s | |
| ✓ PASS | randomness greedy | 0s | |
| ✓ PASS | randomness random | 1s | |
| ✓ PASS | randomness top-p=0.9 | 0s | |
| ✓ PASS | randomness top-k=50 | 1s | |
| ✓ PASS | randomness top-p + seed | 0s | |
| ✓ PASS | permissive guardrails -P | 0s | |
| ✓ PASS | combined: -t -r -i -P | 1s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | temperature > 1.0 rejected | 0s | |
| ✓ PASS | temperature < 0.0 rejected | 0s | |
| ✓ PASS | temperature non-numeric rejected | 0s | |
| ✓ PASS | randomness invalid rejected | 0s | |
| ✓ PASS | top-p > 1.0 rejected | 0s | |
| ✓ PASS | top-k=0 rejected | 0s | |
| ✓ PASS | conflicting top-p + top-k rejected | 0s | |
| ✓ PASS | unknown randomness param rejected | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | GET /health | 0s | |
| ✓ PASS | GET /v1/models | 0s | |
| ✓ PASS | POST chat completion | 0s | |
| ✓ PASS | POST chat with temperature | 0s | |
| ✓ PASS | POST chat streaming | 1s | |
| ✓ PASS | POST multi-turn conversation | 1s | |
| ✓ PASS | POST empty messages returns error | 0s | |
| ✓ PASS | POST max_tokens respected | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | permissive guardrails server | 0s | |
| ✓ PASS | server with -t 0.5 -r greedy | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | mlx single prompt | 1s | |
| ✓ PASS | mlx single prompt with instructions | 0s | |
| ✓ PASS | mlx single prompt with temperature | 1s | |
| ✓ PASS | mlx pipe mode | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | GET /health | 0s | |
| ✓ PASS | GET /v1/models | 0s | |
| ✓ PASS | POST chat completion | 0s | |
| ✓ PASS | POST chat with temperature | 0s | |
| ✓ PASS | POST chat streaming | 1s | |
| ✓ PASS | POST empty messages returns error | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✗ FAIL | download mlx-community/granite-4.0-350m-bf16 | 51s | files missing after download |
| ✓ PASS | serve downloaded model | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | VLM text-only chat | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | MoE chat completion | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | mlx without -m fails | 0s | |
| ✓ PASS | mlx nonexistent model fails | 0s |
| Status | Test | Time | Detail |
|---|---|---|---|
| ✓ PASS | custom port 9873 | 0s |