From 18b4406eceb23fa79c7d146bf6e41bf2f0a7cfa2 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 14 Sep 2025 02:43:51 +0800 Subject: [PATCH] :white_check_mark: Test the simplify of 2x^2+4x-3=0 --- test/solver_test.dart | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/solver_test.dart b/test/solver_test.dart index 20bd9e2..56ae58f 100644 --- a/test/solver_test.dart +++ b/test/solver_test.dart @@ -54,5 +54,39 @@ void main() { true, ); }); + + test('二次方程根的简化', () { + final result = solver.solve('x^2 - 4x - 5 = 0'); + debugPrint('Result for x^2 - 4x - 5 = 0: ${result.finalAnswer}'); + // 这个方程的根应该是 x = (4 ± √(16 + 20))/2 = (4 ± √36)/2 = (4 ± 6)/2 + // 所以 x1 = (4 + 6)/2 = 5, x2 = (4 - 6)/2 = -1 + expect( + (result.finalAnswer.contains('x_1 = 5') && + result.finalAnswer.contains('x_2 = -1')) || + (result.finalAnswer.contains('x_1 = -1') && + result.finalAnswer.contains('x_2 = 5')), + true, + reason: '方程 x^2 - 4x - 5 = 0 的根应该被正确简化', + ); + }); + + test('二次方程精确度改进', () { + final result = solver.solve('x^2 - 2x - 1 = 0'); + debugPrint('Result for x^2 - 2x - 1 = 0: ${result.finalAnswer}'); + // 这个方程的根应该是 x = (2 ± √(4 + 4))/2 = (2 ± √8)/2 = (2 ± 2√2)/2 = 1 ± √2 + // 验证结果包含正确的根格式 + expect( + result.finalAnswer.contains('x_1') && + result.finalAnswer.contains('x_2'), + true, + reason: '方程应该有两个根', + ); + expect( + result.finalAnswer.contains('1 +') || + result.finalAnswer.contains('1 -'), + true, + reason: '根应该以 1 ± √2 的形式出现', + ); + }); }); }