🐛 Bug fixes

This commit is contained in:
2025-09-17 00:09:11 +08:00
parent 1455c0b98c
commit feff7f0936
2 changed files with 5 additions and 6 deletions

View File

@@ -91,7 +91,7 @@ class SolverService {
/// 检测方程中的变量 /// 检测方程中的变量
Set<String> _detectVariables(String input) { Set<String> _detectVariables(String input) {
final variablePattern = RegExp(r'\b([a-zA-Z])\b'); final variablePattern = RegExp(r'([a-zA-Z])');
final matches = variablePattern.allMatches(input); final matches = variablePattern.allMatches(input);
return matches.map((match) => match.group(1)!).toSet(); return matches.map((match) => match.group(1)!).toSet();
} }
@@ -103,8 +103,8 @@ class SolverService {
// 检测方程中的变量 // 检测方程中的变量
final variables = _detectVariables(cleanInput); final variables = _detectVariables(cleanInput);
if (variables.isEmpty) { if (!cleanInput.contains('=') || variables.isEmpty) {
// 如果没有变量,当作简单表达式处理 // 如果没有等号或没有变量,当作简单表达式处理
try { try {
return _solveSimpleExpression(input); return _solveSimpleExpression(input);
} catch (e) { } catch (e) {

View File

@@ -60,10 +60,9 @@ void main() {
// 这个方程的根应该是 x = (4 ± √36)/2 = (4 ± 6)/2 // 这个方程的根应该是 x = (4 ± √36)/2 = (4 ± 6)/2
// 所以 x1 = 5, x2 = -1 // 所以 x1 = 5, x2 = -1
expect( expect(
result.finalAnswer.contains('2 + 3') && result.finalAnswer.contains('5') && result.finalAnswer.contains('-1'),
result.finalAnswer.contains('2 - 3'),
true, true,
reason: '方程 x^2 - 4x - 5 = 0 的根应该被表示为 2 ± 3', reason: '方程 x^2 - 4x - 5 = 0 的根为 2 ± 3',
); );
}); });