facilitate the creation of Maple code test suites - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Programming : CodeTools : CodeTools/Test

CodeTools[Test] - facilitate the creation of Maple code test suites

Calling Sequence

Test( input, expected)

Test( input, expected, verification)

Parameters

input

-

expression to be evaluated for correctness

expected

-

expected result of evaluation of input

verification

-

expression of type verification, or one of the names testerror or testnoerror, or a procedure which returns type/verify similar to the verify command.

Description

• 

The CodeTools[Test] command is a front-end utility used for the creation and verification of a suite of Maple test projects.  By default it returns a NULL result if the test succeeds and an error if the test fails.

• 

If only input and expected are given, the input is evaluated using verify and compared against the expected result.

• 

If input is a string, it will be parsed using parse.

• 

If the expected output is an expression sequence, then input and expected should each be enclosed in a list.

• 

If the third argument type is a verification expression then it is passed as a third verify argument for testing.

• 

The CodeTools[Test] command knows about two special verifications:

– 

testnoerror ignores the expected parameter and causes the test to fail when there is an exception during the evaluation of input.

– 

testerror is nearly the opposite of testnoerror and causes the test to pass only if there is an exception during the evaluation, and expected is a string that matches the error message prefix.

• 

If the third argument is not a verification  type or not one of above mentioned special verifiers, then it must be a procedure with a type/verify return.

• 

If more than three parameters are passed to "Test" , the others are passed as addition arguments to the specified verifier.

Examples

withCodeTools

CPUTime,DecodeName,EncodeName,GCTime,Profiling,RealTime,Test,Usage

(1)

Tests that pass.

Testintx,x2,integration range or variable must,'testerror',label=Test Pass 1

Test Pass 1 passed

Testintx,x2,,'testerror',label=Test Pass 2

Test Pass 2 passed

Test∫x2ⅆx,,'testnoerror',label=Test Pass 3

Test Pass 3 passed

Test∫xⅆx,x22,label=Test Pass 4

Test Pass 4 passed

Test∫xⅆx,x22,'simplify',label=Test Pass 5,'boolout'

Test Pass 5 passed

true

(2)

Tests that fail.

Test∫x2ⅆx,integration range or variable must,testerror,label=Test Fail 1

Test Fail 1 failed
 Expected error but did not receive one

Error, (in CodeTools:-Test) TEST FAILED: Test Fail 1

Testintx,x2,,'testnoerror',label=Test Fail 2

Test Fail 2 failed
 Expected no errors, but got:
 Error, integration range or variable must be specified in the second argument, got x^2

Error, (in CodeTools:-Test) TEST FAILED: Test Fail 2

Test∫xⅆx,x24,'simplify',label=Test Fail 3

Test Fail 3 failed
 Expected result : 1/4*x^2
 Evaluated result: 1/2*x^2

Error, (in CodeTools:-Test) TEST FAILED: Test Fail 3

Test∫xⅆx,x22,label=Test Fail 4,'boolout'

Test Fail 4 failed
 Expected result : x^2/sqrt(2)^2
 Evaluated result: 1/2*x^2

false

(3)

The boolout and quiet options work well together.

Testintx,x2,,'testerror','boolout','quiet'

true

(4)

Test∫x2ⅆx,,'testerror','boolout','quiet'

false

(5)

See Also

CodeTools, type/verification, type/verify, verify


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam