初始提交:天垓150兼容引擎 I0–I4/I6/I7
All checks were successful
Docker Build / docker (push) Successful in 8s

This commit is contained in:
Victor Cao
2026-10-13 11:16:51 +08:00
commit fc15b61c81
24 changed files with 819 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
import json
import shutil
import tempfile
import unittest
from pathlib import Path
import apply_patches
ROOT = Path(__file__).resolve().parents[1]
FIXTURE = ROOT / "tests" / "fixtures" / "fake-model"
WHITELIST = apply_patches.load_whitelist(ROOT / "patches" / "architectures" / "whitelist.txt")
class ArchitectureTest(unittest.TestCase):
def setUp(self) -> None:
self.tmp = tempfile.TemporaryDirectory()
self.model = Path(self.tmp.name) / "model"
shutil.copytree(FIXTURE, self.model)
def tearDown(self) -> None:
self.tmp.cleanup()
def write_architectures(self, names: list[str]) -> None:
path = self.model / "config.json"
data = json.loads(path.read_text(encoding="utf-8"))
data["architectures"] = names
path.write_text(json.dumps(data), encoding="utf-8")
def test_whitelist_passes(self) -> None:
result = apply_patches.apply_architectures(self.model, WHITELIST, {}, "fail")
self.assertEqual(result["architectures"], ["LlamaForCausalLM"])
self.assertFalse(result["changed"])
def test_unknown_architecture_fails(self) -> None:
self.write_architectures(["ExampleForCausalLM"])
with self.assertRaises(apply_patches.PatchError) as ctx:
apply_patches.apply_architectures(self.model, WHITELIST, {}, "fail")
self.assertIn("ExampleForCausalLM", str(ctx.exception))
def test_unknown_architecture_skip_keeps_name(self) -> None:
self.write_architectures(["ExampleForCausalLM"])
result = apply_patches.apply_architectures(self.model, WHITELIST, {}, "skip")
self.assertEqual(result["skipped"], ["ExampleForCausalLM"])
data = json.loads((self.model / "config.json").read_text(encoding="utf-8"))
self.assertEqual(data["architectures"], ["ExampleForCausalLM"])
def test_alias_rewrites_to_whitelist(self) -> None:
self.write_architectures(["LlamaForCausalLMAlias"])
result = apply_patches.apply_architectures(
self.model,
WHITELIST,
{"LlamaForCausalLMAlias": "LlamaForCausalLM"},
"fail",
)
self.assertEqual(result["rewritten"], ["LlamaForCausalLMAlias->LlamaForCausalLM"])
data = json.loads((self.model / "config.json").read_text(encoding="utf-8"))
self.assertEqual(data["architectures"], ["LlamaForCausalLM"])
def test_shipped_aliases_are_empty(self) -> None:
aliases = apply_patches.load_aliases(ROOT / "patches" / "architectures" / "aliases.json")
self.assertEqual(aliases, {})
if __name__ == "__main__":
unittest.main()