CodeTools[Profiling][Coverage][Percent] - calculate the percent coverage of procedures
|
Calling Sequence
|
|
Percent(proc1, proc1, ..., tab1, tab2, ..., opts)
|
|
Parameters
|
|
proc1, proc2, ...
|
-
|
(optional) procedure
|
tab1, tab2, ...
|
-
|
(optional) table
|
opts
|
-
|
(optional) equation of the form 'depth'=posint and 'output'=value; specify options for the Percent command
|
|
|
|
|
Description
|
|
•
|
The Percent() command calculates and prints the coverage percent for every procedure for which it has profiling data.
|
|
The coverage percent of a procedure is the number of lines covered divided by the total number of lines in the procedure.
|
•
|
The Percent(proc1, proc2, ...) command calculates and prints the coverage percent for the specified procedures.
|
•
|
Percent reads profiling data from currently profiled procedures and from any specified tables of profiling data. If a procedure appears more than once in any of these sources, the profiles are joined together (as in Merge) and the data from the merged profiles is used.
|
•
|
The output option can be any of the following names that control the format in which the data is returned.
|
|
Specifies that Percent print the percent coverage. Each line of the output has a procedure name followed by its percent coverage. This is the default behavior.
|
|
Specifies that Percent return a string instead of printing the percent coverage. The string is what is printed if you specify 'output'='default'.
|
|
Specifies that Percent return the percentages in a table. This table has elements with the encoded name of a procedure (see EncodeName) as the key and the coverage percent, represented as a number in the range 0 to 1, as the value.
|
•
|
A statement is considered covered if it is executed greater than or equal to a certain number of times. Use the 'depth' argument to specify the number of iterations required.
|
|
Specifies the number of times that a statement has to be executed to be considered covered. The default is one.
|
|
|
Examples
|
|
>
|
a := proc(x)
local y;
if (x > 1) then
y := int(i^x, i);
return y;
else
y := int(sin(i), i);
return y;
end if;
end proc:
|
>
|
|
>
|
|
>
|
|
>
|
|

| (1) |
>
|
|
| (2) |
>
|
|
>
|
|
>
|
|

| (3) |
>
|
|
| (4) |
>
|
|
>
|
|
>
|
|

| (5) |
>
|
|
| (6) |
|
|