|
|
@@ -182,7 +182,7 @@ void main() {
|
|
|
await pumpApp(tester);
|
|
|
await press(tester, 'sin');
|
|
|
await press(tester, 'x');
|
|
|
- await press(tester, '=');
|
|
|
+ await press(tester, '↵');
|
|
|
|
|
|
final evals = calls.where((c) => c.method == 'evaluate').toList();
|
|
|
final committed = evals.where((c) => c.arguments['preview'] == false);
|
|
|
@@ -236,6 +236,28 @@ void main() {
|
|
|
expect(await lastExpr(tester), 'x2+');
|
|
|
});
|
|
|
|
|
|
+ testWidgets('用新加的运算符键敲出一个可解的方程', (tester) async {
|
|
|
+ await pumpApp(tester);
|
|
|
+ await press(tester, 'solve'); // Solve[□, x],光标在第一个参数
|
|
|
+ await press(tester, 'x');
|
|
|
+ await press(tester, '−');
|
|
|
+ await press(tester, '1');
|
|
|
+ await press(tester, '==');
|
|
|
+ await press(tester, '0');
|
|
|
+
|
|
|
+ // 说明:这里刻意不用 ^。按了 ^ 之后光标在**指数槽**里,
|
|
|
+ // 要回到主层得点一下幂节点(点定位),不是靠按键。
|
|
|
+ expect(await lastExpr(tester), 'Solve[x-1==0, x]');
|
|
|
+ });
|
|
|
+
|
|
|
+ testWidgets('赋值:x = 1', (tester) async {
|
|
|
+ await pumpApp(tester);
|
|
|
+ await press(tester, 'x');
|
|
|
+ await press(tester, '=');
|
|
|
+ await press(tester, '1');
|
|
|
+ expect(await lastExpr(tester), 'x=1');
|
|
|
+ });
|
|
|
+
|
|
|
testWidgets('ANS 键在编辑框显示 ANS,送进引擎的仍是 %', (tester) async {
|
|
|
await pumpApp(tester);
|
|
|
await press(tester, '2');
|
|
|
@@ -257,7 +279,7 @@ void main() {
|
|
|
await pumpApp(tester);
|
|
|
await press(tester, 'sin');
|
|
|
await press(tester, 'x');
|
|
|
- await press(tester, '=');
|
|
|
+ await press(tester, '↵');
|
|
|
|
|
|
final committed = calls.where(
|
|
|
(c) => c.method == 'evaluate' && c.arguments['preview'] == false);
|
|
|
@@ -273,7 +295,7 @@ void main() {
|
|
|
await tester.pumpAndSettle();
|
|
|
expect(find.text('≈ 近似'), findsOneWidget);
|
|
|
|
|
|
- await press(tester, '=');
|
|
|
+ await press(tester, '↵');
|
|
|
final committed = calls.where(
|
|
|
(c) => c.method == 'evaluate' && c.arguments['preview'] == false);
|
|
|
expect(committed.last.arguments['expr'], 'N[Sin[x], 15]');
|
|
|
@@ -410,7 +432,7 @@ void main() {
|
|
|
await press(tester, '2');
|
|
|
await press(tester, '+');
|
|
|
await press(tester, '3');
|
|
|
- await press(tester, '=');
|
|
|
+ await press(tester, '↵');
|
|
|
|
|
|
// 结果区渲染的是 LaTeX,纯文本那份不在,所以点整个结果条
|
|
|
await tester.tap(find.byKey(const ValueKey('calc-result')));
|