334 lines
14 KiB
Plaintext
334 lines
14 KiB
Plaintext
! *****************************************************
|
|
! TEST OF
|
|
! calcPerform
|
|
!
|
|
! ------------- TEST CALCULATION ALGORITHM -------------
|
|
!
|
|
! *****************************************************
|
|
!
|
|
! ld <calcTest.o
|
|
!
|
|
!
|
|
!testId "expression" "parameters vals a-l" value verify?
|
|
!------ ------------ --------------------- ------ -------
|
|
!
|
|
! --------------------------------------Addition +
|
|
|
|
calcTest "a+b+c+d+e+f+g+h+i+j+k+l" "1 2 3 4 5 6 7 8 9 10 11 12" 78 VERIFY
|
|
|
|
! --------------------------------------Subtraction -
|
|
|
|
calcTest "a-b-c-d-e-f-g-h-i-j-k-l" "1 2 3 4 5 6 7 8 9 10 11 12" -76 VERIFY
|
|
|
|
! --------------------------------------Multiplication *
|
|
|
|
calcTest "a*b*c*d*e*f*g*h*i*j*k*l" "1 2 3 4 5 6 7 8 9 10 11 12" 4.79002e+08 VERIFY
|
|
|
|
! --------------------------------------Division /
|
|
|
|
calcTest "a/b+c/d+e/f+g/h+i/j+k/l" "1 2 3 4 5 6 7 8 9 10 11 12" 4.775 VERIFY
|
|
|
|
! --------------------------------------Absolute value ABS
|
|
|
|
calcTest "ABS(b-f)-ABS(c-g)" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------Square root SQR
|
|
|
|
calcTest "SQR(a)-a" "0" 0 VERIFY
|
|
calcTest "SQR(a)-a" "1" 0 VERIFY
|
|
calcTest "SQR(a)-b" "144 12" 0 VERIFY
|
|
calcTest "SQR(a+b+c)-SQR(l-f)" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------exponential function EXP
|
|
|
|
calcTest "EXP(a+b+c+d)" "1 2 3 4" 22026.5 VERIFY
|
|
calcTest "EXP(a)" "1" 2.71828 VERIFY
|
|
calcTest "EXP(a)" ".1" 1.10517 VERIFY
|
|
calcTest "EXP(a)" ".001" 1.001 VERIFY
|
|
|
|
! --------------------------------------Logbase 10 LOG
|
|
|
|
calcTest "LOG(a+b+c+d+a)" "1 2 3 4" 1.04139 VERIFY
|
|
calcTest "LOG(a)" "1" 0 VERIFY
|
|
calcTest "LOG(a)-(c-LOG(b)-d)" "5 2 1 .0001" 0.0001 VERIFY
|
|
|
|
! --------------------------------------Natural log LOGE
|
|
|
|
calcTest "LOGE(a+b+c+d+a)" "1 2 3 4" 2.3979 VERIFY
|
|
calcTest "LOGE(a)" "1" 0 VERIFY
|
|
calcTest "LOGE(a)" "2.71828182845904523536" 1 VERIFY
|
|
calcTest "LOGE(a*a*a)" "2.71828182845904523536" 3 VERIFY
|
|
|
|
! --------------------------------------Exponential ^
|
|
calcTest "a+b^c+d^e+f^(g-h)+j^(i-k)-l" "1 2 3 4 5 6 7 8 9 10 11 12" 1021.18 VERIFY
|
|
calcTest "a+b**c+d**e+f**(g-h)+j**(i-k)-l" "1 2 3 4 5 6 7 8 9 10 11 12" 1021.18 VERIFY
|
|
calcTest "a**b" "-2.5 2. " 6.25 VERIFY
|
|
calcTest "a**b" "-.5 3. " -0.125 VERIFY
|
|
calcTest "a**b" "0 6. " 0 VERIFY
|
|
calcTest "a**b" "6 0. " 1 VERIFY
|
|
calcTest "a**b" "2. -2 " 0.25 VERIFY
|
|
calcTest "a**b-a*a*a" "3 4" 54 VERIFY
|
|
calcTest "a**b-a*a*a*a" "3 0" -80 VERIFY
|
|
|
|
! --------------------------------------Modulo %
|
|
|
|
calcTest "k%e-l%f" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
|
|
! --------------------------------------Negate NOT
|
|
|
|
calcTest "NOT a + b" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
|
|
! --------------------------------------Sine SIN
|
|
|
|
calcTest "SIN(a)+SIN(a/b)+SIN(a/d)+SIN(e)" "3.141592653589793238462643 2 3 4 0" 1.70711 VERIFY
|
|
calcTest "SIN(a*b/c)-d" "-2.0 3.141592653589793238462643 4 -1.0" 0 VERIFY
|
|
calcTest "SIN(a/c)+SQR(b)+d" "-3.141592653589793238462643 .5 4 1" 1 VERIFY
|
|
calcTest "SIN(a/c)-SQR(b)+d" "3.141592653589793238462643 .5 4 1" 1 VERIFY
|
|
calcTest "SIN(a)" "0.0" 0 VERIFY
|
|
calcTest "SIN(a*b/c)+d" "2.0 3.141592653589793238462643 4 -1.0" 0 VERIFY
|
|
|
|
! --------------------------------------Hyperbolic sine SINH
|
|
|
|
calcTest "SINH(a)+(b+a/b)/c" "-1 2.71828182845904523536 2" 0 VERIFY
|
|
calcTest "SINH(a)" "0" 0 VERIFY
|
|
calcTest "SINH(a)-(b-a/b)/c" "1 2.71828182845904523536 2" 0 VERIFY
|
|
|
|
! --------------------------------------Arc sine ASIN
|
|
|
|
calcTest "ASIN(SIN(a))+ASIN(SIN(a/b))+ASIN(SIN(a/d))+ASIN(SIN(e))" "3.141592653589793238462643 2 3 4 0" 2.35619 VERIFY
|
|
calcTest "ASIN(a)+d*b/c" "-1.0 3.141592653589793238462643 4 2.0" 0 VERIFY
|
|
calcTest "ASIN(d*SQR(a))+b/c+d" ".5 3.141592653589793238462643 4 -1 1" -1 VERIFY
|
|
calcTest "ASIN(a)" "0.0" 0 VERIFY
|
|
calcTest "ASIN(SQR(a))-b/c+d" ".5 3.141592653589793238462643 4 1" 1 VERIFY
|
|
calcTest "ASIN(a)-d*b/c" "1 3.141592653589793238462643 4 2.0" 0 VERIFY
|
|
|
|
! --------------------------------------Cosine COS
|
|
|
|
calcTest "COS(a)+COS(a/b)+COS(a/d)+COS(e)" "3.141592653589793238462643 2 3 4 0" 0.707107 VERIFY
|
|
calcTest "COS(a*b/c)+SQR(d)+e" "-3.0 3.141592653589793238462643 4 .5 1" 1 VERIFY
|
|
calcTest "COS(a*b/c)+d" "-2.0 3.141592653589793238462643 4 1" 1 VERIFY
|
|
calcTest "COS(b/c)-SQR(a)+d" ".5 3.141592653589793238462643 4 1" 1 VERIFY
|
|
calcTest "COS(a)-b" "0 1" 0 VERIFY
|
|
calcTest "COS(b/c)-SQR(d)+e" "3.0 3.141592653589793238462643 4 .5 1" 1 VERIFY
|
|
calcTest "COS(a*b/c)+d" "2.0 3.141592653589793238462643 4 1" 1 VERIFY
|
|
calcTest "COS(a*b/c)+SQR(d)+e" "3.0 3.141592653589793238462643 4 .5 1" 1 VERIFY
|
|
calcTest "COS(a*b/c)-d" "4.0 3.141592653589793238462643 4 1" -2 VERIFY
|
|
calcTest "COS(a*b/c)+SQR(d)+e" "-3.0 3.141592653589793238462643 4 .5 1" 1 VERIFY
|
|
|
|
! --------------------------------------Hyperbolic cosine COSH
|
|
|
|
calcTest "COSH(a)-b" "0 1.0" 0 VERIFY
|
|
calcTest "COSH(a)-(c+a/c)/b+d" "1 2 2.7182818284590 1" 1 VERIFY
|
|
calcTest "COSH(a)-(c-a/c)/b+d" "-1 2 2.7182818284590 1" 1 VERIFY
|
|
calcTest "COSH(a)+COSH(b)+COSH(c)" "1 2 3" 15.3729 VERIFY
|
|
|
|
! --------------------------------------Arc cosine ACOS
|
|
|
|
calcTest "ACOS(COS(a))+ACOS(COS(a/b))+ACOS(COS(a/d))+ACOS(COS(e))" "3.141592653589793238462643 2 3 4 0" 5.49779 VERIFY
|
|
calcTest "ACOS(a)-c*b/c" "-1.0 3.141592653589793238462643 4" 0 VERIFY
|
|
calcTest "ACOS(e*SQR(a))-d*b/c" ".5 3.141592653589793238462643 4 3.0 -1" 0 VERIFY
|
|
calcTest "ACOS(a)-d*b/c" "0.0 3.141592653589793238462643 4 2.0" 0 VERIFY
|
|
calcTest "ACOS(SQR(a))-b/c" ".5 3.141592653589793238462643 4" 0 VERIFY
|
|
calcTest "ACOS(a)" "1" 0 VERIFY
|
|
|
|
! --------------------------------------Tangent TAN
|
|
|
|
calcTest "TAN(a)+TAN(a/d)+TAN(e)" "3.141592653589793238462643 2 3 4 0" 1 VERIFY
|
|
|
|
! --------------------------------------Hyperbolic tangent TANH
|
|
|
|
calcTest "TANH(a)+TANH(b)+TANH(c)" "1 2 3 4 5 6 7 8 9 10 11 12" 2.72068 VERIFY
|
|
calcTest "TANH(a)+(b*b+a)/(b*b-a)+c" "-1 2.71828182845904523536 1" 1 VERIFY
|
|
calcTest "TANH(a)" "0" 0 VERIFY
|
|
calcTest "TANH(a)-(b*b-a)/(b*b+a)+c" "1 2.71828182845904523536 1" 1 VERIFY
|
|
|
|
! --------------------------------------Arc tangent ATAN
|
|
|
|
calcTest "ATAN(TAN(a))+ATAN(TAN(a/d))+ATAN(TAN(e))" "3.141592653589793238462643 2 3 4 0" 0.785398 VERIFY
|
|
calcTest "ATAN(a)+b/c" "-1.0 3.141592653589793238462643 4" 0 VERIFY
|
|
calcTest "ATAN(a)" ".00" 0 VERIFY
|
|
calcTest "ATAN(a)-b/c" "1.0 3.141592653589793238462643 4" 0 VERIFY
|
|
|
|
! --------------------------------------And &&
|
|
|
|
calcTest "(e+f+g)=(h+j) AND (a+b)=c" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "(e+f+g)=(h+j) AND (a+b)=d" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------Or ||
|
|
|
|
calcTest "(e+f+g)=(h+j) OR (a+b)=d" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "(e+f+g)=(h+j+a) OR (a+b)=d" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------Greater than or equal to >=
|
|
|
|
calcTest "(a+b+c)>=d" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "(a+b+c)>=(d+e)" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------Greater than >
|
|
|
|
calcTest "(e+f+g)>(h+i)" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "(e+f+g)>(h+i+k)" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------Less than or equal to <=
|
|
|
|
calcTest "(e+f+g)<=(i+k)" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "(e+f+g+h)<=(i+k)" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------Less than <
|
|
calcTest "(a+b)<d" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "(a+b+c)<d" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------Not equal to #
|
|
|
|
calcTest "(e+f+g)#(h+j)" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
calcTest "(e+f+g)#(i+j+k)" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
|
|
! --------------------------------------Equal to =
|
|
|
|
calcTest "(e+f+g)=(h+j)" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "(e+f+g)=(h+j+a)" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------Bit-wise or |
|
|
|
|
calcTest "a | b" "1 2 3 4 5 6 7 8 9 10 11 12" 3 VERIFY
|
|
calcTest "a | b | d" "1 2 3 4 5 6 7 8 9 10 11 12" 7 VERIFY
|
|
calcTest "a | b | d | h" "1 2 3 4 5 6 7 8 9 10 11 12" 15 VERIFY
|
|
calcTest "a | b | d | h | i" "1 2 3 4 5 6 7 8 9 10 11 12" 15 VERIFY
|
|
calcTest "a | b | d | h | i | j" "1 2 3 4 5 6 7 8 9 10 11 12" 15 VERIFY
|
|
|
|
! --------------------------------------Bit-wise and &
|
|
|
|
calcTest "a & b" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
calcTest "b & f" "1 2 3 4 5 6 7 8 9 10 11 12" 2 VERIFY
|
|
calcTest "b & f & j" "1 2 3 4 5 6 7 8 9 10 11 12" 2 VERIFY
|
|
calcTest "a & e" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "a & c & e & g & i & k" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "d & l" "1 2 3 4 5 6 7 8 9 10 11 12" 4 VERIFY
|
|
|
|
! --------------------------------------Bit-wise and AND
|
|
|
|
calcTest "a AND b" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
calcTest "b AND f" "1 2 3 4 5 6 7 8 9 10 11 12" 2 VERIFY
|
|
calcTest "b AND f AND j" "1 2 3 4 5 6 7 8 9 10 11 12" 2 VERIFY
|
|
calcTest "a AND e" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "a AND c AND e AND g AND i AND k" "1 2 3 4 5 6 7 8 9 10 11 12" 1 VERIFY
|
|
calcTest "d AND l" "1 2 3 4 5 6 7 8 9 10 11 12" 4 VERIFY
|
|
|
|
! --------------------------------------Bit-wise or OR
|
|
|
|
calcTest "a OR b" "1 2 3 4 5 6 7 8 9 10 11 12" 3 VERIFY
|
|
calcTest "a OR b OR d" "1 2 3 4 5 6 7 8 9 10 11 12" 7 VERIFY
|
|
calcTest "a OR b OR d OR h" "1 2 3 4 5 6 7 8 9 10 11 12" 15 VERIFY
|
|
calcTest "a OR b OR d OR h OR i" "1 2 3 4 5 6 7 8 9 10 11 12" 15 VERIFY
|
|
calcTest "a OR b OR d OR h OR i OR j" "1 2 3 4 5 6 7 8 9 10 11 12" 15 VERIFY
|
|
|
|
! --------------------------------------Bit-wise exclusive XOR
|
|
|
|
calcTest "a XOR c " "1 2 3 4 5 6 7 8 9 10 11 12" 2 VERIFY
|
|
calcTest "a XOR c XOR e" "1 2 3 4 5 6 7 8 9 10 11 12" 7 VERIFY
|
|
calcTest "a XOR c XOR e XOR g" "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
|
|
! --------------------------------------Relational NOT !
|
|
|
|
calcTest "!a " "1 2 3 4 5 6 7 8 9 10 11 12" 0 VERIFY
|
|
calcTest "l + !a " "1 2 3 4 5 6 7 8 9 10 11 12" 12 VERIFY
|
|
calcTest "l + !b " "1 0 3 4 5 6 7 8 9 10 11 12" 13 VERIFY
|
|
|
|
! --------------------------------------Bit-wise NOT ~
|
|
|
|
calcTest "~c " "1 2 0 4 5 6 7 8 9 10 11 12" -1 VERIFY
|
|
calcTest "~c " "1 2 3 4 5 6 7 8 9 10 11 12" -4 VERIFY
|
|
calcTest "~l " "1 2 3 4 5 6 7 8 9 10 11 12" -13 VERIFY
|
|
|
|
! --------------------------------------random number generation RNDM
|
|
|
|
calcTest "RNDM" "1 2 3 4 5 6 7 8 9 10 11 12" 0 NOVERIFY
|
|
calcTest "RNDM" "1 2 3 4 5 6 7 8 9 10 11 12" 0 NOVERIFY
|
|
calcTest "RNDM" "1 2 3 4 5 6 7 8 9 10 11 12" 0 NOVERIFY
|
|
calcTest "RNDM" "1 2 3 4 5 6 7 8 9 10 11 12" 0 NOVERIFY
|
|
calcTest "RNDM" "1 2 3 4 5 6 7 8 9 10 11 12" 0 NOVERIFY
|
|
calcTest "RNDM" "1 2 3 4 5 6 7 8 9 10 11 12" 0 NOVERIFY
|
|
calcTest "RNDM" "1 2 3 4 5 6 7 8 9 10 11 12" 0 NOVERIFY
|
|
calcTest "RNDM" "1 2 3 4 5 6 7 8 9 10 11 12" 0 NOVERIFY
|
|
|
|
! --------------------------------------maximum MAX
|
|
|
|
calcTest "MAX(a,b)" "1 2 3 4 5 6 7 8 9 10 11 12" 2
|
|
calcTest "MAX(a+c,b)" "1 2 3 4 5 6 7 8 9 10 11 12" 4
|
|
calcTest "MAX(MAX(a,b),c)" "1 2 3 4 5 6 7 8 9 10 11 12" 3
|
|
calcTest "MAX(MAX(a,b),MAX(c+d,e+f))" "1 2 3 4 5 6 7 8 9 10 11 12" 11
|
|
calcTest "MAX(MAX(a,b),MAX(c+d,f-b))" "1 2 3 4 5 6 7 8 9 10 11 12" 7
|
|
calcTest "MAX(h-a,f-b)" "1 2 3 4 5 6 7 8 9 10 11 12" 7
|
|
|
|
! --------------------------------------minimum MIN
|
|
|
|
calcTest "MIN(a,b)" "1 2 3 4 5 6 7 8 9 10 11 12" 1
|
|
calcTest "MIN(a+c,b)" "1 2 3 4 5 6 7 8 9 10 11 12" 2
|
|
calcTest "MIN(MIN(a,b),c)" "1 2 3 4 5 6 7 8 9 10 11 12" 1
|
|
calcTest "MIN(MIN(a,b),MIN(c+d,e+f))" "1 2 3 4 5 6 7 8 9 10 11 12" 1
|
|
calcTest "MIN(MIN(a,b),MIN(c+d,f-b))" "1 2 3 4 5 6 7 8 9 10 11 12" 1
|
|
calcTest "MIN(h-a,f-b)" "1 2 3 4 5 6 7 8 9 10 11 12" 4
|
|
|
|
! --------------------------------------ceiling CEIL
|
|
|
|
calcTest "CEIL(a)" "3.2123" 4
|
|
calcTest "CEIL(a+b)" ".1 2.91" 4
|
|
calcTest "CEIL(CEIL(a)+b)" "1.7 2.2 " 5
|
|
calcTest "CEIL(CEIL(a+b)*CEIL(c+d+e))" ".8 1.9 2.10 3.11 4.12" 30
|
|
calcTest "CEIL(CEIL(a-b)*CEIL(c-d))" "1 2 3 4 5 6 7 8 9 10 11 12" 1
|
|
calcTest "CEIL(a-b)" "1 2 3 4 5 6 7 8 9 10 11 12" -1
|
|
|
|
! --------------------------------------floor FLOOR
|
|
|
|
calcTest "FLOOR(a+b)" ".2 1.3 " 1
|
|
calcTest "FLOOR(a-c*b)" ".1 .9 .5" -1
|
|
calcTest "FLOOR(FLOOR(a+b)*c)" "1e-2 2.7 3.1" 6
|
|
calcTest "FLOOR(FLOOR(a+b)-FLOOR(c+d))" ".1 1.2 3.4 4.5 " -6
|
|
calcTest "FLOOR(FLOOR(a-b)+FLOOR(c-d-e-f))" ".1 .2 .3 .4 .5 .6 " -3
|
|
calcTest "FLOOR(a-b)" "5e-3 .7" -1
|
|
|
|
! --------------------------------------conditional ? :
|
|
|
|
calcTest "a?b:c" "1 2 3 " 2
|
|
calcTest "a?b:c" "0 2 3 " 3
|
|
calcTest "a?b?c:d:e" "1 1 3 4 5" 3
|
|
calcTest "a?(b?c:d):e" "1 1 3 4 5" 3
|
|
calcTest "a?b?c:d:e" "1 0 3 4 5" 4
|
|
calcTest "a?b?c:d:e" "0 0 3 4 5" 5
|
|
calcTest "a?b:c?d:e" "0 5 1 6 7" 6
|
|
calcTest "a?b:c?d:e" "1 5 1 6 7" 5
|
|
calcTest "a?b:c?d:e" "0 5 0 6 7" 7
|
|
|
|
calcTest "a?b:c?d:e" "1 6 0 7 8" 6
|
|
calcTest "a?b:c?d:e" "0 6 0 7 8" 8
|
|
calcTest "a?b:c?d:e" "0 6 1 7 8" 7
|
|
|
|
calcTest "h+(a?b:c)+(d?e:f)+g" "1 2 3 0 10 20 100 200" 322
|
|
calcTest "h+(a?b:c)+(d?e:f)+g" "0 2 3 1 10 20 100 200" 313
|
|
|
|
calcTest "a?(b?(c+d):e):(f?g:h)" "1 1 10 50 30 0 100 200" 60
|
|
calcTest "a?(b?(c+d):e):(f?g:h)" "0 1 10 50 30 0 100 200" 200
|
|
calcTest "a?(b?(c+d):e):(f?g:h)" "0 1 10 50 30 1 100 200" 100
|
|
calcTest "a?(b?(c+d):e):(f?g:h)" "1 0 10 50 30 0 100 200" 30
|
|
|
|
calcTest "((e+f+g)=(h+j)) ? k:l" "1 2 3 4 5 6 7 8 9 10 11 12" 11
|
|
calcTest "((a+e+f+g)=(h+j))?k:l" "1 2 3 4 5 6 7 8 9 10 11 12" 12
|
|
|
|
! --------------------------------------constants in expression
|
|
calcTest "a+3" "5" 8
|
|
calcTest "a/.001" "6000" 6
|
|
calcTest "a**2" "3" 9
|
|
calcTest "LOG(1)" "1" 0
|
|
calcTest "ABS(2-f)-ABS(3-g)" "1 1 1 4 5 6 7 8 9 10 11 12" 0
|
|
calcTest "ACOS(SQR(a))-3.141592653589793238462643/b" ".5 4" 0
|
|
|
|
|
|
! *****************************************************
|
|
! *****************************************************
|
|
|
|
! -------------------------- End of test ---------------
|
|
!
|
|
! *****************************************************
|
|
! *****************************************************
|
|
! *****************************************************
|