git-subtree-dir: fiscal git-subtree-mainline:d95165fc8fgit-subtree-split:102ba84500
32 lines
1.4 KiB
Python
32 lines
1.4 KiB
Python
def test_retrieval_v3_gtin_evidence_is_candidate_only():
|
|
from central.app.ai.retrieval_v3 import retrieval_v3_candidates
|
|
|
|
class Corpus:
|
|
pass
|
|
corpus = Corpus()
|
|
corpus.documents = {}
|
|
corpus.descriptions = {}
|
|
corpus.positions = {}
|
|
corpus.children = {}
|
|
class Index:
|
|
entries = []
|
|
# Empty V2 corpus cannot manufacture an NCM, proving no candidate is invented.
|
|
assert retrieval_v3_candidates(corpus, Index(), "produto", {"gtin_ncm": "22011000"}) == []
|
|
|
|
|
|
def test_prepare_candidate_set_is_fingerprinted_and_non_decisional():
|
|
from central.app.ai.retrieval_v3 import prepare_candidate_set
|
|
|
|
work = type("WorkItem", (), {"task_type": "INVALID_NCM", "dedup_key": "x", "payload": {"description": "Agua mineral"}})()
|
|
prepared = prepare_candidate_set(work, [("22011000", "AGUAS MINERAIS", 0.9, 0.8, 0.1, 2)], dataset_versions={"ncm": "v1"})
|
|
assert prepared["top20_candidate_ncms"][0]["ncm"] == "22011000"
|
|
assert prepared["input_fingerprint"]
|
|
assert "selected_ncm" not in prepared
|
|
|
|
|
|
def test_product_role_context_is_compact_and_evidence_only():
|
|
from central.app.ai.retrieval_v3 import compact_product_role_context
|
|
|
|
result = compact_product_role_context([{"description": "Coca Cola"}, {"description": "coca-cola"}, {"description": "Pepsi"}], limit=2)
|
|
assert len(result["examples"]) == 2 and result["decision"] is None and result["evidence_only"] is True
|