2828 [C13] meta_learner _total increments after each search
2929 [C14] should_adapt() returns True at cycle boundary (adapt_every=10 for test)
3030"""
31+
3132import pytest
3233
3334from flamehaven_filesearch import FlamehavenFileSearch , Config
34- from flamehaven_filesearch .engine .quality_gate import SearchQualityGate , SearchMetaLearner
35-
35+ from flamehaven_filesearch .engine .quality_gate import (
36+ SearchQualityGate ,
37+ SearchMetaLearner ,
38+ )
3639
3740# ---------------------------------------------------------------------------
3841# Shared test documents
6164# Fixtures
6265# ---------------------------------------------------------------------------
6366
67+
6468@pytest .fixture (scope = "module" )
6569def tmp_docs (tmp_path_factory ):
6670 """Write test documents to a temp directory (auto-cleaned by pytest)."""
@@ -93,6 +97,7 @@ def indexed_searcher(searcher, tmp_docs):
9397# C1-C3: Initialization
9498# ---------------------------------------------------------------------------
9599
100+
96101class TestInitialization :
97102 def test_c1_quality_gate_instance (self , searcher ):
98103 """[C1] _quality_gate is SearchQualityGate"""
@@ -111,6 +116,7 @@ def test_c3_meta_alpha_empty_dict(self, searcher):
111116# C4-C5: Keyword path confidence priors
112117# ---------------------------------------------------------------------------
113118
119+
114120class TestKeywordConfidence :
115121 def test_c4_match_confidence_0_7 (self , indexed_searcher ):
116122 """[C4] keyword hit -> search_confidence = 0.7"""
@@ -135,6 +141,7 @@ def test_c5_no_match_confidence_0_3(self, indexed_searcher):
135141# C6-C8: Hybrid response schema
136142# ---------------------------------------------------------------------------
137143
144+
138145class TestHybridResponseSchema :
139146 def test_c6_confidence_key_present (self , indexed_searcher ):
140147 """[C6] hybrid response always has search_confidence"""
@@ -174,6 +181,7 @@ def test_c8_low_confidence_absent_on_normal(self, indexed_searcher):
174181# C9-C10: FORGE path (monkeypatched)
175182# ---------------------------------------------------------------------------
176183
184+
177185class TestForgePath :
178186 def test_c9_forge_augments_sources (self , indexed_searcher , monkeypatch ):
179187 """[C9] FORGE verdict: keyword-matched docs appended to sources"""
@@ -224,6 +232,7 @@ def fake_rerank(store_name, query, sem_results):
224232# C11-C12: INHIBIT path (monkeypatched)
225233# ---------------------------------------------------------------------------
226234
235+
227236class TestInhibitPath :
228237 def test_c11_inhibit_sets_low_confidence_true (self , indexed_searcher , monkeypatch ):
229238 """[C11] INHIBIT verdict: low_confidence == True"""
@@ -272,6 +281,7 @@ def fake_rerank(store_name, query, sem_results):
272281# C13-C14: Meta-learner wiring
273282# ---------------------------------------------------------------------------
274283
284+
275285class TestMetaLearnerWiring :
276286 def test_c13_total_increments_after_search (self , searcher , tmp_docs ):
277287 """[C13] meta_learner _total increases with each search"""
0 commit comments