mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 05:41:57 +00:00
审批质询遮罩收口:说明跟上实现——「夹住」越过的连接词含异或、条件长到细看不过来时多遮几个阈值写进已知局限
- 模块说明的已知局限补一句:条件长到细看不过来(PIN_WORK)时,两边都隔开的一律按夹住算,会多遮几个阈值 - 测试说明对齐:同一个条件里夹住的那组用例越过的连接词含异或(XOR 用例),HAVING 的用例已挪到自己那条测试;年龄段那条 补上说明
This commit is contained in:
@@ -40,7 +40,8 @@
|
||||
安全,宁可多遮;数个数要用 COUNT。按遮罩列分档的 CASE(CASE WHEN age < 30 THEN '30岁以下' …)同理,标签列整列遮,
|
||||
标签文字也成了遮罩值,SQL 和回答正文里写着的同样的字一并换掉(换掉的标签不是数,不牵连阈值)
|
||||
- 「夹住某一个值」只在同一个条件里认(_pinned):把找值拆进子查询、CTE 的写法(WHERE age >= 25 AND id IN
|
||||
(SELECT id FROM t WHERE age <= 25))认不出,两个边界都当阈值照原样留着
|
||||
(SELECT id FROM t WHERE age <= 25))认不出,两个边界都当阈值照原样留着;反过来,条件长到细看不过来(PIN_WORK)时,
|
||||
两边都隔开的一律按夹住算,会多遮几个阈值
|
||||
- 遮罩值最多收 SECRETS_MAX 种写法,再多的按值认不出(按列遮照旧)
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -356,8 +356,8 @@ def test_a_range_that_pins_a_single_value_is_a_lookup(phones, sql, shown):
|
||||
"SELECT COUNT(*) FROM sales WHERE age >= 已遮罩 XOR age > 已遮罩"),
|
||||
])
|
||||
def test_a_value_pinned_within_one_condition_is_still_a_lookup(phones, kind, sql, shown):
|
||||
"""「夹住某一个值」只在同一个条件里认(从比较往上只越过且、或、非、括号),同一个条件里夹住的照样换:旁边还有
|
||||
别的条件、写在 CASE WHEN 或 HAVING 里、整数的开区间。"""
|
||||
"""「夹住某一个值」只在同一个条件里认(从比较往上只越过且、或、非、异或、括号),同一个条件里夹住的照样换:旁边
|
||||
还有别的条件、写在 CASE WHEN 里、整数的开区间、XOR。"""
|
||||
assert inquiry_mod._scrub_sql(sql, phones, {"buyer_phone", "age"}, kind) == shown
|
||||
|
||||
|
||||
@@ -411,6 +411,7 @@ def ages() -> inquiry_mod._Secrets:
|
||||
"COUNT(*) AS 人数 FROM sales GROUP BY 1", {"18", "30", "45"}),
|
||||
])
|
||||
def test_overlapping_age_bands_are_thresholds(ages, sql, shown):
|
||||
"""年龄段的两个 WHEN 分支共用边界 30:同上,是分档的界。"""
|
||||
assert inquiry_mod._scrub_sql(sql, ages, {"age"}, "sqlite") == sql
|
||||
assert inquiry_mod._shown_literals([(sql, "sqlite", {"age"})], ages) == shown
|
||||
|
||||
|
||||
Reference in New Issue
Block a user