muh-bot
3f97dca7ad
feat(verify): expand functional test suite from 21 to 51 test cases
Competition requires 50+ functional tests passing. Previous version had 21.
Added 30 new test cases covering missing PRD requirements:
TC-22 Prefix cache hit (cached_tokens > 0 on repeat prompt)
TC-23 Chinese exact repetition (lossless Unicode)
TC-24 Emoji encoding (combined grapheme clusters)
TC-25 Japanese encoding
TC-26 Thinking mode default enabled
TC-27 n=2 multiple choices
TC-28 Long prompt (~4K tokens)
TC-29 Missing role error (4xx)
TC-30 Missing content error
TC-31 Empty body error (4xx)
TC-32 temperature=2.0 upper bound
TC-33 top_p=1.1 out of range
TC-34 presence_penalty boundary (-2, 2)
TC-35 /v1/models endpoint
TC-36 /health endpoint
TC-37 Response role is 'assistant'
TC-38 Tool call name matches definition
TC-39 Tool call finish_reason='tool_calls'
TC-40 Streaming delta content concatenation
TC-41 top_k parameter
TC-42 repetition_penalty parameter
TC-43 Invalid max_tokens=-1
TC-44 Sequential requests (basic concurrency)
TC-45 Stop array with multiple elements
TC-46 logprobs parameter
TC-47 Multi-tool selection
TC-48 tool_choice='auto'
TC-49 seed parameter
TC-50 Assistant messages in history (context maintenance)
TC-51 max_tokens=1 boundary
Each test maps to a CCCL design pattern:
- Type boundary tests (TC-32/33/34) ← CCCL catch2 boundary value pattern
- Data integrity (TC-23/24/25) ← CCCL transform identity preservation
- Cache validation (TC-22) ← CCCL batch_memcpy block copy
- Error handling (TC-29/30/31/43) ← CCCL concept constraints
- Multi-choice (TC-27) ← CCCL batched_topk
- Idempotency (TC-19) ← CCCL deterministic reduce
2026-08-07 02:01:23 +00:00
..
2026-07-30 16:06:20 +00:00
2026-07-30 16:06:20 +00:00
2026-07-30 16:06:20 +00:00
2026-08-06 07:01:14 +00:00
2026-07-30 16:06:20 +00:00
2026-08-05 08:24:43 +00:00
2026-07-30 16:06:20 +00:00
2026-07-30 16:06:20 +00:00
2026-08-05 08:24:43 +00:00
2026-08-06 06:33:26 +00:00
2026-08-07 01:59:18 +00:00
2026-08-06 07:01:14 +00:00
2026-08-06 06:10:56 +00:00
2026-08-06 07:01:14 +00:00
2026-07-30 16:06:20 +00:00
2026-08-06 06:10:56 +00:00
2026-07-30 16:06:20 +00:00
2026-08-06 03:02:29 +00:00
2026-07-30 16:06:20 +00:00
2026-08-05 08:36:52 +00:00
2026-08-06 02:55:51 +00:00
2026-07-30 16:06:20 +00:00
2026-07-30 16:06:20 +00:00
2026-07-30 16:06:20 +00:00
2026-08-05 08:36:52 +00:00
2026-08-07 02:01:23 +00:00
2026-08-07 01:54:52 +00:00