feat(selector): 增加离线候选遍历与严格回放验证 Demo

- 新增 selector_candidate_demo,移除 provenance intent 后枚举候选 selector
- 对候选分支执行有界重建与严格 STEP 比较
- 仅在候选遍历完整且唯一 strict 通过时生成 selector 映射记录
- 增加 selector 候选搜索、预算限制和记录生成的测试
- 保持生产 selector resolver 不受 Demo 逻辑影响
- 更新 CADFS 能力台账,记录 IMPRINT 派生 profile 的 lineage selector 缺口
This commit is contained in:
2026-09-10 15:12:57 +08:00
parent d8fc2a9207
commit 994d06aaea
36 changed files with 9268 additions and 753 deletions
+6
View File
@@ -58,10 +58,16 @@ class ParserTests(unittest.TestCase):
def test_source_version_and_standard_library_are_retained(self):
source = '''FeatureScript 1511;
import(path : "onshape/std/geometry.fs", version : "1511.0");
import(version : "1511.0", path : "onshape/std/common.fs");
export const f = defineFeature(function(context, id, definition) {});'''
model = parse_featurescript(source, "versioned")
self.assertEqual(model.featurescript_version, "1511")
self.assertEqual(model.standard_library, "onshape/std/geometry.fs")
self.assertEqual(model.standard_library_version, "1511.0")
self.assertEqual(model.standard_library_imports, [
{"path": "onshape/std/geometry.fs", "version": "1511.0"},
{"path": "onshape/std/common.fs", "version": "1511.0"},
])
def test_block_scoped_query_aliases_do_not_use_the_last_assignment(self):
source = r'''