CodeTools[Test] - Maple コード検証スイートの作成を支援
|
使い方
|
|
Test( input, expected)
Test( input, expected, verification)
|
|
パラメータ
|
|
input
|
-
|
正しさを検証したい式
|
expected
|
-
|
input を評価したときの正しい結果
|
verification
|
-
|
verification 型の式、または testerror、testnoerror のどちらかの名前、または verify コマンドと同様の type/verify を返すプロシージャ。
|
|
|
|
|
説明
|
|
•
|
CodeTools[Test] コマンドは、Maple テストプロジェクト一式を生成・検証するのに利用できるフロントエンド・ユーティリティーです。デフォルトとして、検証に合格すれば NULL を返し、不合格であればエラーを返します。
|
•
|
input と expected だけが与えられた場合、入力を verify により評価し、結果を expected と比較します。
|
•
|
input が文字列の場合、parse により解析されます。
|
•
|
出力の正しい値が式列の場合、input と expected はそれぞれリストに入れたものを与えます。
|
•
|
CodeTools[Test] コマンドでは、2 つの特殊な verification を指定できます。
|
–
|
testnoerror では expected パラメータを無視し、input の評価中に例外処理が発生すると検証は不合格となります。
|
–
|
testerror は testnoerror のほぼ反対で、評価中に例外処理が発生し、エラーメッセージの接頭語が文字列 expected と一致した場合のみ検証に合格となります。
|
•
|
Test に 3 つを超えるパラメータが渡された場合、余分なパラメータは指定の verification コマンドに対する追加引数として渡されます。
|
|
|
オプション
|
|
•
|
label = string or posint
|
|
表示される合格・不合格のメッセージに入る検証のラベル。デフォルトは Test。
|
|
true のとき、合格・不合格のメッセージは表示されません。
|
|
true の場合、検証が合格のとき true を返し、その他の場合 false を返します。false の場合、検証が合格のときデフォルトの NULL を返し、不合格の場合例外処理が発生します。
|
|
|
互換性
|
|
•
|
CodeTools[Test] コマンドは Maple 15 より導入されました。
|
|
|
例
|
|
| (6.1) |
合格するテスト。
>
|
Test(int(x,x^2), "integration range or variable must", 'testerror', label="Test Pass 1");
|
>
|
Test(int(x,x^2), "", 'testerror', label="Test Pass 2");
|
>
|
Test(int(x^2,x), "", 'testnoerror', label="Test Pass 3");
|
>
|
Test(int(x,x), x^2/2, label="Test Pass 4");
|
>
|
Test(int(x,x), (x/sqrt(2))^2, 'simplify', label="Test Pass 5", 'boolout');
|
| (6.2) |
不合格となるテスト。
>
|
Test(int(x^2,x), "integration range or variable must", testerror, label="Test Fail 1");
|
Test Fail 1 failed
Expected error but did not receive one
| |
エラー。(CodeTools:-Test) 検証不合格: 検証不合格 1
| |
>
|
Test(int(x,x^2), "", 'testnoerror', label="Test Fail 2");
|
Test Fail 2 failed
Expected no errors, but got:
["integration range or variable must be specified in the second argument, got %1", x^2]
| |
エラー。(CodeTools:-Test) 検証不合格: 検証不合格 2
| |
>
|
Test(int(x,x), x^2/4, 'simplify', label="Test Fail 3");
|
Test Fail 3 failed
Expected result : 1/4*x^2
Evaluated result: 1/2*x^2
| |
エラー。(CodeTools:-Test) 検証不合格: 検証不合格 3
| |
>
|
Test(int(x,x), (x/sqrt(2))^2, label="Test Fail 4", 'boolout');
|
Test Fail 4 failed
Expected result : x^2/sqrt(2)^2
Evaluated result: 1/2*x^2
| |
| (6.3) |
boolout と quiet の両オプションは、同時使用に適しています。
>
|
Test(int(x,x^2), "", 'testerror', 'boolout', 'quiet');
|
| (6.4) |
>
|
Test(int(x^2,x), "", 'testerror', 'boolout', 'quiet');
|
| (6.5) |
|
|