feat: 实验性 SM-15M 算法实现
实验性 SM-15M 逆向工程算法实现
This commit is contained in:
@@ -17,7 +17,7 @@ from heurams.services.config import ConfigFile
|
||||
|
||||
|
||||
class TestDashboardScreenUnit(unittest.TestCase):
|
||||
"""DashboardScreen 的单元测试(不启动完整应用)."""
|
||||
"""DashboardScreen 的单元测试(不启动完整应用)."""
|
||||
|
||||
def setUp(self):
|
||||
"""在每个测试之前运行, 设置临时目录和配置."""
|
||||
|
||||
@@ -94,7 +94,7 @@ class TestSM2Algorithm(unittest.TestCase):
|
||||
SM2Algorithm.revisor(algodata, feedback=5, is_new_activation=True)
|
||||
self.assertEqual(algodata[SM2Algorithm.algo_name]["rept"], 0)
|
||||
self.assertEqual(algodata[SM2Algorithm.algo_name]["efactor"], 2.5)
|
||||
# interval 应为 1(因为 rept=0)
|
||||
# interval 应为 1(因为 rept=0)
|
||||
self.assertEqual(algodata[SM2Algorithm.algo_name]["interval"], 1)
|
||||
|
||||
def test_revisor_efactor_calculation(self):
|
||||
|
||||
@@ -27,7 +27,7 @@ class TestElectron(unittest.TestCase):
|
||||
self.assertEqual(electron.algo, algorithms["supermemo2"])
|
||||
self.assertIn(electron.algo, electron.algodata)
|
||||
self.assertIsInstance(electron.algodata[electron.algo], dict)
|
||||
# 检查默认值(排除动态字段)
|
||||
# 检查默认值(排除动态字段)
|
||||
defaults = electron.algo.defaults
|
||||
for key, value in defaults.items():
|
||||
if key == "last_modify":
|
||||
|
||||
@@ -48,7 +48,7 @@ class TestMCQPuzzle(unittest.TestCase):
|
||||
# 模拟 random.sample 返回前两个映射项
|
||||
mock_sample.side_effect = [
|
||||
[("q1", "a1"), ("q2", "a2")], # 选择问题
|
||||
["j1", "j2", "j3"], # 为每个问题选择干扰项(实际调用两次)
|
||||
["j1", "j2", "j3"], # 为每个问题选择干扰项(实际调用两次)
|
||||
]
|
||||
puzzle.refresh()
|
||||
|
||||
@@ -59,7 +59,7 @@ class TestMCQPuzzle(unittest.TestCase):
|
||||
self.assertEqual(puzzle.answer, ["a1", "a2"])
|
||||
# 检查 options 列表
|
||||
self.assertEqual(len(puzzle.options), 2)
|
||||
# 每个选项列表应包含 4 个选项(正确答案 + 3 个干扰项)
|
||||
# 每个选项列表应包含 4 个选项(正确答案 + 3 个干扰项)
|
||||
self.assertEqual(len(puzzle.options[0]), 4)
|
||||
self.assertEqual(len(puzzle.options[1]), 4)
|
||||
# random.shuffle 应被调用
|
||||
|
||||
Reference in New Issue
Block a user