Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

42 lines
1.3 KiB
Python

"""Tests for perfxpert.tools.intent — air-gap routing without LLM."""
import pytest
from perfxpert.tools import intent
from perfxpert.tools._class import ToolClass
@pytest.mark.parametrize("query, expected", [
("Why is my kernel slow?", "analyze"),
("analyze this trace", "analyze"),
("what's the bottleneck", "analyze"),
("how do I fix the memcpy overhead", "optimize"),
("suggest optimizations for my matmul kernel", "optimize"),
("did my patch help", "verify"),
("is this better than before", "verify"),
("compare run 1 vs run 2", "verify"),
("explain what MFMA means", "explain"),
("what is the ridge point", "explain"),
("help", "help"),
("huh", "analyze"), # ambiguous default
])
def test_intent_classification(query, expected):
r = intent.classify(query)
assert r["intent"] == expected
def test_returns_confidence():
r = intent.classify("analyze my trace")
assert 0 <= r["confidence"] <= 1
def test_ambiguous_gets_analyze_with_warning():
r = intent.classify("uh?")
assert r["intent"] == "analyze"
assert r["confidence"] < 0.5
assert "ambiguous" in r.get("warning", "").lower() or "default" in r.get("warning", "").lower()
def test_is_read_only_class():
assert intent.classify.__tool_class__ == ToolClass.READ_ONLY