Add BIST tests for octave functions written in C++: Difference between revisions

From Octave
Jump to navigation Jump to search
m (Formatting changes)
 
(7 intermediate revisions by 2 users not shown)
Line 215: Line 215:
*/
*/
</pre>
</pre>
==== Example 4 : Function tested elsewhere ====
The BIST tests are normally located immediately following the DEFUN block.  However this is not always the case.  For functions that occur in pairs like set()/get() or load()/save() the tests may be located near just one of the functions.  Or the tests may be located in a single block somewhere else.  This could be the end of the file, or it could be in a separate test file in the test/ directory.  In this case, the function needs only to be marked with an explanation about where the tests reside.  For example, in bessel.cc there is a large test block at the end of the file and the code includes a note that begins with '%!#'
<pre>
/*
%!# Function besselj is tested along with other bessels at the end of this file
*/
</pre>
Alternatively, it may make sense to move the tests to reside next to the function.  For example, cputime() does not have tests in data.cc, but it does in test/system.tst.


== Detailed Instructions ==
== Detailed Instructions ==
Line 234: Line 246:
Start of Sprint
Start of Sprint


Total: 280
Total: 485


Fixed: 0
Fixed: 0
Line 242: Line 254:


|-
|-
| ??? || corefcn/balance.cc:balance
| ??? || corefcn/__ichol__.cc:__ichol0__
|-
| ??? || corefcn/__ilu__.cc:__ilu0__
|-
|-
| ??? || corefcn/besselj.cc:besselh
| ??? || corefcn/__ilu__.cc:__iluc__
|-
|-
| ??? || corefcn/besselj.cc:besseli
| ??? || corefcn/balance.cc:balance
|-
|-
| ??? || corefcn/besselj.cc:besselj
| ??? || corefcn/cellfun.cc:cellindexmat
|-
|-
| ??? || corefcn/besselj.cc:besselk
| ??? || corefcn/colloc.cc:colloc
|-
|-
| ??? || corefcn/besselj.cc:bessely
| ??? || corefcn/daspk.cc:daspk
|-
|-
| ??? || corefcn/bitfcns.cc:bitand
| ??? || corefcn/dasrt.cc:dasrt
|-
|-
| ??? || corefcn/bitfcns.cc:bitor
| ??? || corefcn/data.cc:permute
|-
|-
| ??? || corefcn/bitfcns.cc:flintmax
| ??? || corefcn/data.cc:ipermute
|-
|-
| ??? || corefcn/bitfcns.cc:intmax
| ??? || corefcn/data.cc:length
|-
|-
| ??? || corefcn/bitfcns.cc:intmin
| ??? || corefcn/data.cc:ndims
|-
|-
| ??? || corefcn/bitfcns.cc:sizemax
| ??? || corefcn/data.cc:numel
|-
|-
| ??? || corefcn/cellfun.cc:cellindexmat
| ??? || corefcn/data.cc:size
|-
|-
| ??? || corefcn/colloc.cc:colloc
| ??? || corefcn/data.cc:size_equal
|-
|-
| ??? || corefcn/daspk.cc:daspk
| ??? || corefcn/data.cc:nnz
|-
|-
| ??? || corefcn/dasrt.cc:dasrt
| ??? || corefcn/data.cc:nzmax
|-
|-
| ??? || corefcn/data.cc:I
| ??? || corefcn/data.cc:columns
|-
|-
| ??? || corefcn/data.cc:and
| ??? || corefcn/data.cc:isinteger
|-
|-
| ??? || corefcn/data.cc:colon
| ??? || corefcn/data.cc:iscomplex
|-
|-
| ??? || corefcn/data.cc:columns
| ??? || corefcn/data.cc:isfloat
|-
|-
| ??? || corefcn/data.cc:complex
| ??? || corefcn/data.cc:complex
|-
|-
| ??? || corefcn/data.cc:cputime
| ??? || corefcn/data.cc:isreal
|-
|-
| ??? || corefcn/data.cc:e
| ??? || corefcn/data.cc:e
|-
|-
| ??? || corefcn/data.cc:eq
| ??? || corefcn/data.cc:pi
|-
| ??? || corefcn/data.cc:realmax
|-
|-
| ??? || corefcn/data.cc:false
| ??? || corefcn/data.cc:realmin
|-
|-
| ??? || corefcn/data.cc:full
| ??? || corefcn/data.cc:I
|-
|-
| ??? || corefcn/data.cc:ge
| ??? || corefcn/data.cc:false
|-
|-
| ??? || corefcn/data.cc:gt
| ??? || corefcn/data.cc:true
|-
|-
| ??? || corefcn/data.cc:ipermute
| ??? || corefcn/data.cc:resize
|-
|-
| ??? || corefcn/data.cc:iscomplex
| ??? || corefcn/data.cc:squeeze
|-
|-
| ??? || corefcn/data.cc:isfloat
| ??? || corefcn/data.cc:full
|-
|-
| ??? || corefcn/data.cc:isinteger
| ??? || corefcn/data.cc:not
|-
|-
| ??? || corefcn/data.cc:isreal
| ??? || corefcn/data.cc:uplus
|-
|-
| ??? || corefcn/data.cc:ldivide
| ??? || corefcn/data.cc:uminus
|-
|-
| ??? || corefcn/data.cc:le
| ??? || corefcn/data.cc:plus
|-
|-
| ??? || corefcn/data.cc:length
| ??? || corefcn/data.cc:minus
|-
|-
| ??? || corefcn/data.cc:lt
| ??? || corefcn/data.cc:mtimes
|-
|-
| ??? || corefcn/data.cc:merge
| ??? || corefcn/data.cc:mrdivide
|-
|-
| ??? || corefcn/data.cc:minus
| ??? || corefcn/data.cc:mpower
|-
|-
| ??? || corefcn/data.cc:mldivide
| ??? || corefcn/data.cc:mldivide
|-
|-
| ??? || corefcn/data.cc:mpower
| ??? || corefcn/data.cc:lt
|-
| ??? || corefcn/data.cc:le
|-
|-
| ??? || corefcn/data.cc:mrdivide
| ??? || corefcn/data.cc:eq
|-
|-
| ??? || corefcn/data.cc:mtimes
| ??? || corefcn/data.cc:ge
|-
|-
| ??? || corefcn/data.cc:ndims
| ??? || corefcn/data.cc:gt
|-
|-
| ??? || corefcn/data.cc:ne
| ??? || corefcn/data.cc:ne
|-
|-
| ??? || corefcn/data.cc:nnz
| ??? || corefcn/data.cc:times
|-
|-
| ??? || corefcn/data.cc:not
| ??? || corefcn/data.cc:rdivide
|-
|-
| ??? || corefcn/data.cc:nth_element
| ??? || corefcn/data.cc:power
|-
|-
| ??? || corefcn/data.cc:numel
| ??? || corefcn/data.cc:ldivide
|-
|-
| ??? || corefcn/data.cc:nzmax
| ??? || corefcn/data.cc:and
|-
|-
| ??? || corefcn/data.cc:or
| ??? || corefcn/data.cc:or
|-
|-
| ??? || corefcn/data.cc:permute
| ??? || corefcn/data.cc:colon
|-
| ??? || corefcn/data.cc:tic
|-
| ??? || corefcn/data.cc:cputime
|-
| ??? || corefcn/data.cc:__sort_rows_idx__
|-
|-
| ??? || corefcn/data.cc:pi
| ??? || corefcn/data.cc:nth_element
|-
|-
| ??? || corefcn/data.cc:plus
| ??? || corefcn/data.cc:__accumarray_sum__
|-
|-
| ??? || corefcn/data.cc:power
| ??? || corefcn/data.cc:__accumarray_min__
|-
|-
| ??? || corefcn/data.cc:rdivide
| ??? || corefcn/data.cc:__accumarray_max__
|-
|-
| ??? || corefcn/data.cc:realmax
| ??? || corefcn/data.cc:__accumdim_sum__
|-
|-
| ??? || corefcn/data.cc:realmin
| ??? || corefcn/data.cc:merge
|-
|-
| ??? || corefcn/data.cc:repelems
| ??? || corefcn/data.cc:repelems
|-
|-
| ??? || corefcn/data.cc:resize
| ??? || corefcn/debug.cc:dbstop
|-
|-
| ??? || corefcn/data.cc:rows
| ??? || corefcn/debug.cc:dbclear
|-
|-
| ??? || corefcn/data.cc:size
| ??? || corefcn/debug.cc:dbstatus
|-
|-
| ??? || corefcn/data.cc:size_equal
| ??? || corefcn/debug.cc:dbwhere
|-
|-
| ??? || corefcn/data.cc:squeeze
| ??? || corefcn/debug.cc:dbtype
|-
|-
| ??? || corefcn/data.cc:tic
| ??? || corefcn/debug.cc:dblist
|-
|-
| ??? || corefcn/data.cc:times
| ??? || corefcn/debug.cc:dbstack
|-
|-
| ??? || corefcn/data.cc:true
| ??? || corefcn/debug.cc:dbup
|-
|-
| ??? || corefcn/data.cc:uminus
| ??? || corefcn/debug.cc:dbdown
|-
|-
| ??? || corefcn/data.cc:uplus
| ??? || corefcn/debug.cc:dbstep
|-
| ??? || corefcn/debug.cc:dbclear
|-
|-
| ??? || corefcn/debug.cc:dbcont
| ??? || corefcn/debug.cc:dbcont
|-
|-
| ??? || corefcn/debug.cc:dbdown
| ??? || corefcn/debug.cc:dbquit
|-
|-
| ??? || corefcn/debug.cc:dblist
| ??? || corefcn/debug.cc:isdebugmode
|-
|-
| ??? || corefcn/debug.cc:dbquit
| ??? || corefcn/debug.cc:__db_next_breakpoint_quiet__
|-
|-
| ??? || corefcn/debug.cc:dbstack
| ??? || corefcn/dirfns.cc:cd
|-
|-
| ??? || corefcn/debug.cc:dbstatus
| ??? || corefcn/dirfns.cc:pwd
|-
|-
| ??? || corefcn/debug.cc:dbstep
| ??? || corefcn/dirfns.cc:readdir
|-
|-
| ??? || corefcn/debug.cc:dbstop
| ??? || corefcn/dirfns.cc:mkdir
|-
|-
| ??? || corefcn/debug.cc:dbtype
| ??? || corefcn/dirfns.cc:rmdir
|-
|-
| ??? || corefcn/debug.cc:dbup
| ??? || corefcn/dirfns.cc:link
|-
|-
| ??? || corefcn/debug.cc:dbwhere
| ??? || corefcn/dirfns.cc:symlink
|-
|-
| ??? || corefcn/debug.cc:isdebugmode
| ??? || corefcn/dirfns.cc:readlink
|-
|-
| ??? || corefcn/dirfns.cc:cd
| ??? || corefcn/dirfns.cc:rename
|-
|-
| ??? || corefcn/dirfns.cc:confirm_recursive_rmdir
| ??? || corefcn/dirfns.cc:__fnmatch__
|-
|-
| ??? || corefcn/dirfns.cc:filesep
| ??? || corefcn/dirfns.cc:filesep
Line 414: Line 436:
| ??? || corefcn/dirfns.cc:pathsep
| ??? || corefcn/dirfns.cc:pathsep
|-
|-
| ??? || corefcn/dirfns.cc:pwd
| ??? || corefcn/dirfns.cc:confirm_recursive_rmdir
|-
|-
| ??? || corefcn/dirfns.cc:readdir
| ??? || corefcn/error.cc:rethrow
|-
|-
| ??? || corefcn/error.cc:beep_on_error
| ??? || corefcn/error.cc:error
|-
|-
| ??? || corefcn/error.cc:debug_on_error
| ??? || corefcn/error.cc:warning
|-
|-
| ??? || corefcn/error.cc:debug_on_warning
| ??? || corefcn/error.cc:lasterror
|-
|-
| ??? || corefcn/error.cc:error
| ??? || corefcn/error.cc:lasterr
|-
|-
| ??? || corefcn/error.cc:lasterr
| ??? || corefcn/error.cc:lastwarn
|-
|-
| ??? || corefcn/error.cc:lasterror
| ??? || corefcn/error.cc:__usage__
|-
|-
| ??? || corefcn/error.cc:lastwarn
| ??? || corefcn/error.cc:beep_on_error
|-
|-
| ??? || corefcn/error.cc:rethrow
| ??? || corefcn/error.cc:debug_on_error
|-
|-
| ??? || corefcn/error.cc:warning
| ??? || corefcn/error.cc:debug_on_warning
|-
|-
| ??? || corefcn/fft.cc:fft
| ??? || corefcn/fft.cc:fft
Line 443: Line 465:
|-
|-
| ??? || corefcn/fftn.cc:ifftn
| ??? || corefcn/fftn.cc:ifftn
|-
| ??? || corefcn/file-io.cc:fclose
|-
|-
| ??? || corefcn/file-io.cc:fclear
| ??? || corefcn/file-io.cc:fclear
|-
| ??? || corefcn/file-io.cc:fclose
|-
|-
| ??? || corefcn/file-io.cc:fflush
| ??? || corefcn/file-io.cc:fflush
Line 453: Line 475:
|-
|-
| ??? || corefcn/file-io.cc:fgets
| ??? || corefcn/file-io.cc:fgets
|-
| ??? || corefcn/file-io.cc:fskipl
|-
|-
| ??? || corefcn/file-io.cc:fopen
| ??? || corefcn/file-io.cc:fopen
|-
| ??? || corefcn/file-io.cc:freport
|-
| ??? || corefcn/file-io.cc:frewind
|-
| ??? || corefcn/file-io.cc:fseek
|-
| ??? || corefcn/file-io.cc:ftell
|-
|-
| ??? || corefcn/file-io.cc:fprintf
| ??? || corefcn/file-io.cc:fprintf
|-
| ??? || corefcn/file-io.cc:printf
|-
|-
| ??? || corefcn/file-io.cc:fputs
| ??? || corefcn/file-io.cc:fputs
|-
|-
| ??? || corefcn/file-io.cc:fread
| ??? || corefcn/file-io.cc:puts
|-
|-
| ??? || corefcn/file-io.cc:freport
| ??? || corefcn/file-io.cc:sprintf
|-
| ??? || corefcn/file-io.cc:frewind
|-
|-
| ??? || corefcn/file-io.cc:fscanf
| ??? || corefcn/file-io.cc:fscanf
|-
|-
| ??? || corefcn/file-io.cc:fseek
| ??? || corefcn/file-io.cc:sscanf
|-
|-
| ??? || corefcn/file-io.cc:fskipl
| ??? || corefcn/file-io.cc:scanf
|-
|-
| ??? || corefcn/file-io.cc:ftell
| ??? || corefcn/file-io.cc:fread
|-
|-
| ??? || corefcn/file-io.cc:fwrite
| ??? || corefcn/file-io.cc:fwrite
|-
| ??? || corefcn/file-io.cc:feof
|-
| ??? || corefcn/file-io.cc:ferror
|-
| ??? || corefcn/file-io.cc:popen
|-
| ??? || corefcn/file-io.cc:pclose
|-
| ??? || corefcn/file-io.cc:tmpfile
|-
|-
| ??? || corefcn/file-io.cc:mkstemp
| ??? || corefcn/file-io.cc:mkstemp
|-
|-
| ??? || corefcn/file-io.cc:printf
| ??? || corefcn/file-io.cc:umask
|-
| ??? || corefcn/file-io.cc:P_tmpdir
|-
|-
| ??? || corefcn/file-io.cc:puts
| ??? || corefcn/file-io.cc:SEEK_SET
|-
|-
| ??? || corefcn/file-io.cc:scanf
| ??? || corefcn/file-io.cc:SEEK_CUR
|-
|-
| ??? || corefcn/file-io.cc:sprintf
| ??? || corefcn/file-io.cc:SEEK_END
|-
|-
| ??? || corefcn/file-io.cc:sscanf
| ??? || corefcn/file-io.cc:stdin
|-
|-
| ??? || corefcn/file-io.cc:tmpfile
| ??? || corefcn/file-io.cc:stdout
|-
|-
| ??? || corefcn/getgrent.cc:endgrent
| ??? || corefcn/file-io.cc:stderr
|-
|-
| ??? || corefcn/getgrent.cc:getgrent
| ??? || corefcn/getgrent.cc:getgrent
Line 500: Line 544:
| ??? || corefcn/getgrent.cc:setgrent
| ??? || corefcn/getgrent.cc:setgrent
|-
|-
| ??? || corefcn/getpwent.cc:endpwent
| ??? || corefcn/getgrent.cc:endgrent
|-
|-
| ??? || corefcn/getpwent.cc:getpwent
| ??? || corefcn/getpwent.cc:getpwent
|-
| ??? || corefcn/getpwent.cc:getpwuid
|-
|-
| ??? || corefcn/getpwent.cc:getpwnam
| ??? || corefcn/getpwent.cc:getpwnam
|-
|-
| ??? || corefcn/getpwent.cc:getpwuid
| ??? || corefcn/getpwent.cc:setpwent
|-
| ??? || corefcn/getpwent.cc:endpwent
|-
| ??? || corefcn/graphics.cc:ishandle
|-
| ??? || corefcn/graphics.cc:__is_handle_visible__
|-
| ??? || corefcn/graphics.cc:set
|-
| ??? || corefcn/graphics.cc:__get__
|-
| ??? || corefcn/graphics.cc:__go_figure__
|-
| ??? || corefcn/graphics.cc:__calc_dimensions__
|-
| ??? || corefcn/graphics.cc:__go_axes__
|-
| ??? || corefcn/graphics.cc:__go_line__
|-
| ??? || corefcn/graphics.cc:__go_text__
|-
| ??? || corefcn/graphics.cc:__go_image__
|-
| ??? || corefcn/graphics.cc:__go_surface__
|-
| ??? || corefcn/graphics.cc:__go_patch__
|-
| ??? || corefcn/graphics.cc:__go_hggroup__
|-
| ??? || corefcn/graphics.cc:__go_uimenu__
|-
| ??? || corefcn/graphics.cc:__go_uicontrol__
|-
| ??? || corefcn/graphics.cc:__go_uipanel__
|-
| ??? || corefcn/graphics.cc:__go_uicontextmenu__
|-
| ??? || corefcn/graphics.cc:__go_uitoolbar__
|-
| ??? || corefcn/graphics.cc:__go_uipushtool__
|-
| ??? || corefcn/graphics.cc:__go_uitoggletool__
|-
| ??? || corefcn/graphics.cc:__go_delete__
|-
| ??? || corefcn/graphics.cc:__go_axes_init__
|-
|-
| ??? || corefcn/getpwent.cc:setpwent
| ??? || corefcn/graphics.cc:__go_handles__
|-
|-
| ??? || corefcn/getrusage.cc:getrusage
| ??? || corefcn/graphics.cc:__go_figure_handles__
|-
|-
| ??? || corefcn/graphics.cc:addlistener
| ??? || corefcn/graphics.cc:__go_execute_callback__
|-
|-
| ??? || corefcn/graphics.cc:addproperty
| ??? || corefcn/graphics.cc:__image_pixel_size__
|-
|-
| ??? || corefcn/graphics.cc:available_graphics_toolkits
| ??? || corefcn/graphics.cc:available_graphics_toolkits
|-
|-
| ??? || corefcn/graphics.cc:dellistener
| ??? || corefcn/graphics.cc:register_graphics_toolkit
|-
| ??? || corefcn/graphics.cc:loaded_graphics_toolkits
|-
|-
| ??? || corefcn/graphics.cc:drawnow
| ??? || corefcn/graphics.cc:drawnow
|-
|-
| ??? || corefcn/graphics.cc:ishandle
| ??? || corefcn/graphics.cc:addlistener
|-
|-
| ??? || corefcn/graphics.cc:loaded_graphics_toolkits
| ??? || corefcn/graphics.cc:dellistener
|-
|-
| ??? || corefcn/graphics.cc:register_graphics_toolkit
| ??? || corefcn/graphics.cc:addproperty
|-
|-
| ??? || corefcn/graphics.cc:set
| ??? || corefcn/graphics.cc:waitfor
|-
|-
| ??? || corefcn/graphics.cc:waitfor
| ??? || corefcn/graphics.cc:__zoom__
|-
|-
| ??? || corefcn/help.cc:built_in_docstrings_file
| ??? || corefcn/help.cc:built_in_docstrings_file
|-
| ??? || corefcn/help.cc:doc_cache_file
|-
|-
| ??? || corefcn/help.cc:get_help_text
| ??? || corefcn/help.cc:get_help_text
|-
|-
| ??? || corefcn/help.cc:get_help_text_from_file
| ??? || corefcn/help.cc:get_help_text_from_file
|-
| ??? || corefcn/help.cc:__operators__
|-
| ??? || corefcn/help.cc:__keywords__
|-
| ??? || corefcn/help.cc:__builtins__
|-
| ??? || corefcn/help.cc:__which__
|-
| ??? || corefcn/help.cc:__list_functions__
|-
| ??? || corefcn/help.cc:doc_cache_file
|-
| ??? || corefcn/help.cc:texi_macros_file
|-
|-
| ??? || corefcn/help.cc:info_file
| ??? || corefcn/help.cc:info_file
Line 548: Line 654:
| ??? || corefcn/help.cc:suppress_verbose_help_message
| ??? || corefcn/help.cc:suppress_verbose_help_message
|-
|-
| ??? || corefcn/help.cc:texi_macros_file
| ??? || corefcn/input.cc:input
|-
| ??? || corefcn/input.cc:yes_or_no
|-
| ??? || corefcn/input.cc:keyboard
|-
| ??? || corefcn/input.cc:__echostate__
|-
| ??? || corefcn/input.cc:readline_read_init_file
|-
| ??? || corefcn/input.cc:readline_re_read_init_file
|-
| ??? || corefcn/input.cc:add_input_event_hook
|-
| ??? || corefcn/input.cc:remove_input_event_hook
|-
|-
| ??? || corefcn/input.cc:PS1
| ??? || corefcn/input.cc:PS1
Line 555: Line 675:
|-
|-
| ??? || corefcn/input.cc:PS4
| ??? || corefcn/input.cc:PS4
|-
| ??? || corefcn/input.cc:add_input_event_hook
|-
|-
| ??? || corefcn/input.cc:completion_append_char
| ??? || corefcn/input.cc:completion_append_char
|-
|-
| ??? || corefcn/input.cc:echo_executing_commands
| ??? || corefcn/input.cc:echo_executing_commands
|-
| ??? || corefcn/input.cc:__request_drawnow__
|-
| ??? || corefcn/input.cc:__gud_mode__
|-
|-
| ??? || corefcn/input.cc:filemarker
| ??? || corefcn/input.cc:filemarker
|-
|-
| ??? || corefcn/input.cc:input
| ??? || corefcn/inv.cc:inverse
|-
|-
| ??? || corefcn/input.cc:keyboard
| ??? || corefcn/load-path.cc:genpath
|-
|-
| ??? || corefcn/input.cc:readline_re_read_init_file
| ??? || corefcn/load-path.cc:rehash
|-
|-
| ??? || corefcn/input.cc:readline_read_init_file
| ??? || corefcn/load-path.cc:command_line_path
|-
|-
| ??? || corefcn/input.cc:remove_input_event_hook
| ??? || corefcn/load-path.cc:restoredefaultpath
|-
|-
| ??? || corefcn/input.cc:yes_or_no
| ??? || corefcn/load-path.cc:__pathorig__
|-
|-
| ??? || corefcn/inv.cc:inverse
| ??? || corefcn/load-path.cc:path
|-
|-
| ??? || corefcn/load-path.cc:addpath
| ??? || corefcn/load-path.cc:addpath
|-
|-
| ??? || corefcn/load-path.cc:command_line_path
| ??? || corefcn/load-path.cc:rmpath
|-
|-
| ??? || corefcn/load-path.cc:genpath
| ??? || corefcn/load-path.cc:__dump_load_path__
|-
|-
| ??? || corefcn/load-path.cc:path
| ??? || corefcn/load-save.cc:load
|-
|-
| ??? || corefcn/load-path.cc:rehash
| ??? || corefcn/load-save.cc:save
|-
| ??? || corefcn/load-path.cc:restoredefaultpath
|-
| ??? || corefcn/load-path.cc:rmpath
|-
|-
| ??? || corefcn/load-save.cc:crash_dumps_octave_core
| ??? || corefcn/load-save.cc:crash_dumps_octave_core
|-
|-
| ??? || corefcn/load-save.cc:load
| ??? || corefcn/load-save.cc:save_default_options
|-
|-
| ??? || corefcn/load-save.cc:octave_core_file_limit
| ??? || corefcn/load-save.cc:octave_core_file_limit
Line 601: Line 719:
|-
|-
| ??? || corefcn/load-save.cc:octave_core_file_options
| ??? || corefcn/load-save.cc:octave_core_file_options
|-
| ??? || corefcn/load-save.cc:save
|-
| ??? || corefcn/load-save.cc:save_default_options
|-
|-
| ??? || corefcn/load-save.cc:save_header_format_string
| ??? || corefcn/load-save.cc:save_header_format_string
Line 615: Line 729:
|-
|-
| ??? || corefcn/oct-hist.cc:history
| ??? || corefcn/oct-hist.cc:history
|-
| ??? || corefcn/oct-hist.cc:run_history
|-
|-
| ??? || corefcn/oct-hist.cc:history_control
| ??? || corefcn/oct-hist.cc:history_control
|-
| ??? || corefcn/oct-hist.cc:history_size
|-
|-
| ??? || corefcn/oct-hist.cc:history_file
| ??? || corefcn/oct-hist.cc:history_file
|-
| ??? || corefcn/oct-hist.cc:history_timestamp_format_string
|-
|-
| ??? || corefcn/oct-hist.cc:history_save
| ??? || corefcn/oct-hist.cc:history_save
|-
|-
| ??? || corefcn/oct-hist.cc:history_size
| ??? || corefcn/octave-link.cc:__octave_link_enabled__
|-
| ??? || corefcn/octave-link.cc:__octave_link_edit_file__
|-
| ??? || corefcn/octave-link.cc:__octave_link_message_dialog__
|-
| ??? || corefcn/octave-link.cc:__octave_link_question_dialog__
|-
| ??? || corefcn/octave-link.cc:__octave_link_file_dialog__
|-
|-
| ??? || corefcn/oct-hist.cc:history_timestamp_format_string
| ??? || corefcn/octave-link.cc:__octave_link_list_dialog__
|-
|-
| ??? || corefcn/oct-hist.cc:run_history
| ??? || corefcn/octave-link.cc:__octave_link_input_dialog__
|-
|-
| ??? || corefcn/pager.cc:PAGER
| ??? || corefcn/octave-link.cc:__octave_link_show_preferences__
|-
|-
| ??? || corefcn/pager.cc:PAGER_FLAGS
| ??? || corefcn/octave-link.cc:__octave_link_show_doc__
|-
|-
| ??? || corefcn/pager.cc:diary
| ??? || corefcn/pager.cc:diary
|-
| ??? || corefcn/pager.cc:__diaryfile__
|-
| ??? || corefcn/pager.cc:__diarystate__
|-
|-
| ??? || corefcn/pager.cc:more
| ??? || corefcn/pager.cc:more
|-
| ??? || corefcn/pager.cc:terminal_size
|-
|-
| ??? || corefcn/pager.cc:page_output_immediately
| ??? || corefcn/pager.cc:page_output_immediately
Line 640: Line 774:
| ??? || corefcn/pager.cc:page_screen_output
| ??? || corefcn/pager.cc:page_screen_output
|-
|-
| ??? || corefcn/pager.cc:terminal_size
| ??? || corefcn/pager.cc:PAGER
|-
| ??? || corefcn/pager.cc:PAGER_FLAGS
|-
| ??? || corefcn/pr-output.cc:rats
|-
|-
| ??? || corefcn/pr-output.cc:disp
| ??? || corefcn/pr-output.cc:disp
|-
| ??? || corefcn/pr-output.cc:format
|-
| ??? || corefcn/pr-output.cc:__compactformat__
|-
| ??? || corefcn/pr-output.cc:__formatstring__
|-
|-
| ??? || corefcn/pr-output.cc:fixed_point_format
| ??? || corefcn/pr-output.cc:fixed_point_format
|-
|-
| ??? || corefcn/pr-output.cc:format
| ??? || corefcn/pr-output.cc:print_empty_dimensions
|-
| ??? || corefcn/pr-output.cc:split_long_rows
|-
|-
| ??? || corefcn/pr-output.cc:output_max_field_width
| ??? || corefcn/pr-output.cc:output_max_field_width
Line 652: Line 798:
| ??? || corefcn/pr-output.cc:output_precision
| ??? || corefcn/pr-output.cc:output_precision
|-
|-
| ??? || corefcn/pr-output.cc:print_empty_dimensions
| ??? || corefcn/profiler.cc:__profiler_enable__
|-
| ??? || corefcn/profiler.cc:__profiler_reset__
|-
|-
| ??? || corefcn/pr-output.cc:rats
| ??? || corefcn/profiler.cc:__profiler_data__
|-
|-
| ??? || corefcn/pr-output.cc:split_long_rows
| ??? || corefcn/pt-jit.cc:jit_failcnt
|-
|-
| ??? || corefcn/pt-jit.cc:debug_jit
| ??? || corefcn/pt-jit.cc:debug_jit
|-
|-
| ??? || corefcn/pt-jit.cc:jit_enable
| ??? || corefcn/pt-jit.cc:jit_enable
|-
| ??? || corefcn/pt-jit.cc:jit_failcnt
|-
|-
| ??? || corefcn/pt-jit.cc:jit_startcnt
| ??? || corefcn/pt-jit.cc:jit_startcnt
|-
|-
| ??? || corefcn/sparse.cc:issparse
| ??? || corefcn/sparse.cc:issparse
|-
| ??? || corefcn/sparse.cc:sparse
|-
|-
| ??? || corefcn/sparse.cc:spalloc
| ??? || corefcn/sparse.cc:spalloc
|-
|-
| ??? || corefcn/sparse.cc:sparse
| ??? || corefcn/sub2ind.cc:ind2sub
|-
| ??? || corefcn/symtab.cc:__current_scope__
|-
| ??? || corefcn/symtab.cc:__dump_symtab_info__
|-
|-
| ??? || corefcn/sub2ind.cc:ind2sub
| ??? || corefcn/symtab.cc:__get_cmdline_fcn_txt__
|-
|-
| ??? || corefcn/symtab.cc:set_variable
| ??? || corefcn/symtab.cc:set_variable
|-
| ??? || corefcn/syscalls.cc:dup2
|-
| ??? || corefcn/syscalls.cc:exec
|-
| ??? || corefcn/syscalls.cc:fcntl
|-
| ??? || corefcn/syscalls.cc:fork
|-
| ??? || corefcn/syscalls.cc:getpgrp
|-
| ??? || corefcn/syscalls.cc:getpid
|-
| ??? || corefcn/syscalls.cc:getppid
|-
| ??? || corefcn/syscalls.cc:getegid
|-
| ??? || corefcn/syscalls.cc:getgid
|-
| ??? || corefcn/syscalls.cc:geteuid
|-
| ??? || corefcn/syscalls.cc:getuid
|-
| ??? || corefcn/syscalls.cc:kill
|-
| ??? || corefcn/syscalls.cc:lstat
|-
| ??? || corefcn/syscalls.cc:pipe
|-
| ??? || corefcn/syscalls.cc:stat
|-
| ??? || corefcn/syscalls.cc:S_ISREG
|-
| ??? || corefcn/syscalls.cc:S_ISDIR
|-
| ??? || corefcn/syscalls.cc:S_ISCHR
|-
| ??? || corefcn/syscalls.cc:S_ISBLK
|-
| ??? || corefcn/syscalls.cc:S_ISFIFO
|-
| ??? || corefcn/syscalls.cc:S_ISLNK
|-
| ??? || corefcn/syscalls.cc:S_ISSOCK
|-
|-
| ??? || corefcn/syscalls.cc:gethostname
| ??? || corefcn/syscalls.cc:gethostname
|-
|-
| ??? || corefcn/syscalls.cc:uname
| ??? || corefcn/syscalls.cc:uname
|-
| ??? || corefcn/syscalls.cc:unlink
|-
| ??? || corefcn/syscalls.cc:waitpid
|-
| ??? || corefcn/syscalls.cc:WIFEXITED
|-
| ??? || corefcn/syscalls.cc:WEXITSTATUS
|-
| ??? || corefcn/syscalls.cc:WIFSIGNALED
|-
| ??? || corefcn/syscalls.cc:WTERMSIG
|-
| ??? || corefcn/syscalls.cc:WCOREDUMP
|-
| ??? || corefcn/syscalls.cc:WIFSTOPPED
|-
| ??? || corefcn/syscalls.cc:WSTOPSIG
|-
| ??? || corefcn/syscalls.cc:WIFCONTINUED
|-
| ??? || corefcn/syscalls.cc:canonicalize_file_name
|-
| ??? || corefcn/syscalls.cc:F_DUPFD
|-
| ??? || corefcn/syscalls.cc:F_GETFD
|-
| ??? || corefcn/syscalls.cc:F_GETFL
|-
| ??? || corefcn/syscalls.cc:F_SETFD
|-
| ??? || corefcn/syscalls.cc:F_SETFL
|-
| ??? || corefcn/syscalls.cc:O_APPEND
|-
| ??? || corefcn/syscalls.cc:O_ASYNC
|-
| ??? || corefcn/syscalls.cc:O_CREAT
|-
| ??? || corefcn/syscalls.cc:O_EXCL
|-
| ??? || corefcn/syscalls.cc:O_NONBLOCK
|-
| ??? || corefcn/syscalls.cc:O_RDONLY
|-
| ??? || corefcn/syscalls.cc:O_RDWR
|-
| ??? || corefcn/syscalls.cc:O_SYNC
|-
| ??? || corefcn/syscalls.cc:O_TRUNC
|-
| ??? || corefcn/syscalls.cc:O_WRONLY
|-
| ??? || corefcn/syscalls.cc:WNOHANG
|-
| ??? || corefcn/syscalls.cc:WUNTRACED
|-
| ??? || corefcn/syscalls.cc:WCONTINUE
|-
| ??? || corefcn/sysdep.cc:__open_with_system_app__
|-
|-
| ??? || corefcn/sysdep.cc:clc
| ??? || corefcn/sysdep.cc:clc
|-
|-
| ??? || corefcn/sysdep.cc:have_window_system
| ??? || corefcn/sysdep.cc:unsetenv
|-
|-
| ??? || corefcn/sysdep.cc:kbhit
| ??? || corefcn/sysdep.cc:kbhit
|-
|-
| ??? || corefcn/sysdep.cc:unsetenv
| ??? || corefcn/sysdep.cc:have_window_system
|-
| ??? || corefcn/toplev.cc:atexit
|-
|-
| ??? || corefcn/toplev.cc:quit
| ??? || corefcn/toplev.cc:quit
|-
|-
| ??? || corefcn/toplev.cc:warranty
| ??? || corefcn/toplev.cc:warranty
|-
| ??? || corefcn/toplev.cc:atexit
|-
|-
| ??? || corefcn/tril.cc:tril
| ??? || corefcn/tril.cc:tril
|-
| ??? || corefcn/typecast.cc:typecast
|-
|-
| ??? || corefcn/typecast.cc:bitpack
| ??? || corefcn/typecast.cc:bitpack
Line 700: Line 958:
| ??? || corefcn/typecast.cc:bitunpack
| ??? || corefcn/typecast.cc:bitunpack
|-
|-
| ??? || corefcn/typecast.cc:typecast
| ??? || corefcn/urlwrite.cc:urlwrite
|-
|-
| ??? || corefcn/urlwrite.cc:urlread
| ??? || corefcn/urlwrite.cc:urlread
|-
|-
| ??? || corefcn/urlwrite.cc:urlwrite
| ??? || corefcn/urlwrite.cc:__ftp__
|-
| ??? || corefcn/urlwrite.cc:__ftp_pwd__
|-
| ??? || corefcn/urlwrite.cc:__ftp_cwd__
|-
| ??? || corefcn/urlwrite.cc:__ftp_dir__
|-
| ??? || corefcn/urlwrite.cc:__ftp_ascii__
|-
| ??? || corefcn/urlwrite.cc:__ftp_binary__
|-
| ??? || corefcn/urlwrite.cc:__ftp_close__
|-
| ??? || corefcn/urlwrite.cc:__ftp_mode__
|-
| ??? || corefcn/urlwrite.cc:__ftp_delete__
|-
| ??? || corefcn/urlwrite.cc:__ftp_rmdir__
|-
| ??? || corefcn/urlwrite.cc:__ftp_mkdir__
|-
| ??? || corefcn/urlwrite.cc:__ftp_rename__
|-
| ??? || corefcn/urlwrite.cc:__ftp_mput__
|-
|-
| ??? || corefcn/variables.cc:clear
| ??? || corefcn/urlwrite.cc:__ftp_mget__
|-
|-
| ??? || corefcn/variables.cc:isglobal
| ??? || corefcn/variables.cc:isglobal
|-
| ??? || corefcn/variables.cc:who
|-
| ??? || corefcn/variables.cc:whos
|-
| ??? || corefcn/variables.cc:mlock
|-
| ??? || corefcn/variables.cc:munlock
|-
|-
| ??? || corefcn/variables.cc:mislocked
| ??? || corefcn/variables.cc:mislocked
|-
| ??? || corefcn/variables.cc:clear
|-
| ??? || corefcn/variables.cc:whos_line_format
|-
| ??? || corefcn/variables.cc:missing_function_hook
|-
| ??? || corefcn/variables.cc:__varval__
|-
|-
| ??? || corefcn/variables.cc:missing_component_hook
| ??? || corefcn/variables.cc:missing_component_hook
|-
|-
| ??? || corefcn/variables.cc:missing_function_hook
| ??? || dldfcn/__eigs__.cc:__eigs__
|-
| ??? || dldfcn/__init_fltk__.cc:__fltk_check__
|-
| ??? || dldfcn/__init_fltk__.cc:__init_fltk__
|-
| ??? || dldfcn/__init_fltk__.cc:__have_fltk__
|-
| ??? || dldfcn/__init_gnuplot__.cc:__init_gnuplot__
|-
| ??? || dldfcn/__init_gnuplot__.cc:__have_gnuplot__
|-
| ??? || dldfcn/__magick_read__.cc:__magick_ping__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_audiorecorder__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_getaudiodata__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_get_channels__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_get_fs__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_get_id__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_get_nbits__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_get_sample_number__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_get_tag__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_get_total_samples__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_get_userdata__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_isrecording__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_pause__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_recordblocking__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_record__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_resume__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_set_fs__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_set_tag__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_set_userdata__
|-
| ??? || dldfcn/audiodevinfo.cc:__recorder_stop__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_audioplayer__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_get_channels__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_get_fs__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_get_id__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_get_nbits__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_get_sample_number__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_get_tag__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_get_total_samples__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_get_userdata__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_isplaying__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_pause__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_playblocking__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_play__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_resume__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_set_fs__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_set_tag__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_set_userdata__
|-
| ??? || dldfcn/audiodevinfo.cc:__player_stop__
|-
| ??? || dldfcn/audioread.cc:audioread
|-
| ??? || dldfcn/audioread.cc:audiowrite
|-
| ??? || dldfcn/audioread.cc:audioinfo
|-
| ??? || dldfcn/ccolamd.cc:ccolamd
|-
|-
| ??? || corefcn/variables.cc:mlock
| ??? || dldfcn/ccolamd.cc:csymamd
|-
|-
| ??? || corefcn/variables.cc:munlock
| ??? || dldfcn/chol.cc:chol2inv
|-
|-
| ??? || corefcn/variables.cc:who
| ??? || dldfcn/colamd.cc:colamd
|-
|-
| ??? || corefcn/variables.cc:whos
| ??? || dldfcn/colamd.cc:symamd
|-
|-
| ??? || corefcn/variables.cc:whos_line_format
| ??? || dldfcn/colamd.cc:etree
|-
|-
| ??? || octave-value/ov-cell.cc:cell
| ??? || dldfcn/symbfact.cc:symbfact
|-
|-
| ??? || octave-value/ov-cell.cc:cellstr
| ??? || dldfcn/symrcm.cc:symrcm
|-
|-
| ??? || octave-value/ov-cell.cc:iscell
| ??? || octave-value/ov-cell.cc:iscell
|-
| ??? || octave-value/ov-cell.cc:cell
|-
|-
| ??? || octave-value/ov-cell.cc:iscellstr
| ??? || octave-value/ov-cell.cc:iscellstr
|-
|-
| ??? || octave-value/ov-class.cc:inferiorto
| ??? || octave-value/ov-cell.cc:cellstr
|-
| ??? || octave-value/ov-class.cc:__parent_classes__
|-
| ??? || octave-value/ov-class.cc:isobject
|-
|-
| ??? || octave-value/ov-class.cc:ismethod
| ??? || octave-value/ov-class.cc:ismethod
|-
|-
| ??? || octave-value/ov-class.cc:isobject
| ??? || octave-value/ov-class.cc:__methods__
|-
|-
| ??? || octave-value/ov-class.cc:superiorto
| ??? || octave-value/ov-class.cc:superiorto
|-
|-
| ??? || octave-value/ov-classdef.cc.wip:metaclass
| ??? || octave-value/ov-class.cc:inferiorto
|-
| ??? || octave-value/ov-classdef.cc:__meta_get_package__
|-
| ??? || octave-value/ov-classdef.cc:__superclass_reference__
|-
| ??? || octave-value/ov-classdef.cc:__meta_class_query__
|-
|-
| ??? || octave-value/ov-classdef.cc:metaclass
| ??? || octave-value/ov-classdef.cc:metaclass
|-
| ??? || octave-value/ov-fcn-handle.cc:functions
|-
|-
| ??? || octave-value/ov-fcn-handle.cc:func2str
| ??? || octave-value/ov-fcn-handle.cc:func2str
|-
|-
| ??? || octave-value/ov-fcn-handle.cc:functions
| ??? || octave-value/ov-java.cc:__java_init__
|-
| ??? || octave-value/ov-java.cc:__java_exit__
|-
| ??? || octave-value/ov-java.cc:__java_get__
|-
|-
| ??? || octave-value/ov-java.cc:debug_java
| ??? || octave-value/ov-java.cc:__java_set__
|-
|-
| ??? || octave-value/ov-java.cc:java2mat
| ??? || octave-value/ov-java.cc:java2mat
Line 758: Line 1,168:
| ??? || octave-value/ov-java.cc:java_unsigned_autoconversion
| ??? || octave-value/ov-java.cc:java_unsigned_autoconversion
|-
|-
| ??? || octave-value/ov-struct.cc:isfield
| ??? || octave-value/ov-java.cc:debug_java
|-
|-
| ??? || octave-value/ov-struct.cc:isstruct
| ??? || octave-value/ov-struct.cc:isstruct
|-
|-
| ??? || octave-value/ov-struct.cc:print_struct_array_contents
| ??? || octave-value/ov-struct.cc:__fieldnames__
|-
| ??? || octave-value/ov-struct.cc:isfield
|-
|-
| ??? || octave-value/ov-struct.cc:struct_levels_to_print
| ??? || octave-value/ov-struct.cc:struct_levels_to_print
|-
| ??? || octave-value/ov-struct.cc:print_struct_array_contents
|-
|-
| ??? || octave-value/ov-usr-fcn.cc:nargin
| ??? || octave-value/ov-usr-fcn.cc:nargin
Line 774: Line 1,188:
| ??? || octave-value/ov.cc:subsref
| ??? || octave-value/ov.cc:subsref
|-
|-
| ??? || parse-tree/oct-parse.cc:assignin
| ??? || octave.cc:__version_info__
|-
|-
| ??? || parse-tree/oct-parse.cc:autoload
| ??? || parse-tree/lex.ll:__display_tokens__
|-
|-
| ??? || parse-tree/oct-parse.cc:builtin
| ??? || parse-tree/lex.ll:__token_count__
|-
|-
| ??? || parse-tree/oct-parse.cc:evalin
| ??? || parse-tree/lex.ll:__lexer_debug_flag__
|-
|-
| ??? || parse-tree/oct-parse.cc:feval
| ??? || parse-tree/oct-parse.in.yy:autoload
|-
|-
| ??? || parse-tree/oct-parse.cc:mfilename
| ??? || parse-tree/oct-parse.in.yy:mfilename
|-
|-
| ??? || parse-tree/oct-parse.cc:source
| ??? || parse-tree/oct-parse.in.yy:source
|-
| ??? || parse-tree/oct-parse.in.yy:feval
|-
| ??? || parse-tree/oct-parse.in.yy:builtin
|-
|-
| ??? || parse-tree/oct-parse.in.yy:assignin
| ??? || parse-tree/oct-parse.in.yy:assignin
|-
|-
| ??? || parse-tree/oct-parse.in.yy:autoload
| ??? || parse-tree/oct-parse.in.yy:evalin
|-
| ??? || parse-tree/oct-parse.in.yy:__parser_debug_flag__
|-
| ??? || parse-tree/oct-parse.in.yy:__parse_file__
|-
|-
| ??? || parse-tree/oct-parse.in.yy:builtin
| ??? || corefcn/DASRT-opts.cc:dasrt_options
|-
|-
| ??? || parse-tree/oct-parse.in.yy:evalin
| ??? || corefcn/Quad-opts.cc:quad_options
|-
|-
| ??? || parse-tree/oct-parse.in.yy:feval
| ??? || corefcn/DASSL-opts.cc:dassl_options
|-
|-
| ??? || parse-tree/oct-parse.in.yy:mfilename
| ??? || corefcn/LSODE-opts.cc:lsode_options
|-
|-
| ??? || parse-tree/oct-parse.in.yy:source
| ??? || corefcn/DASPK-opts.cc:daspk_options
|-
|-


|}
|}
[[Category:Development]]
[[Category:Testing]]

Latest revision as of 17:34, 3 October 2018

Introduction[edit]

As new features are added to Octave we need to ensure that we don't break existing functionality. At the heart of that promise not to break functionality lies regression testing. Regression testing is done practically daily and certainly whenever a signicant change is committed. The core of the regression tests are Built-In Self Tests (BIST) which are tests written in the Octave language itself that are placed in comments just below the code being tested. The full documentation for these tests is in Appendix B of the manual (Test Functions). While BIST tests exist for most m-file functions, many core functions written in C++ lack these BIST tests. The goal of this sprint topic is to significantly reduce the number of uncovered core functions.

The syntax for writing tests is documented in Appendix B. The general form of the tests is

  1. Basic functionality
    • Does it work for all different combinations of number of inputs and number of outputs
    • Does it work for all expected input classes (matrices, strings, logicals, cell arrays, structs?)
  2. Corner Case functionality
    • Does it work for corner cases (empty matrices, Inf or NaN, etc.)
    • Tests for specific bugs that have been reported on the bug tracker
  3. Input validation
    • Does it correctly generate errors or warnings for bad inputs

Example 1 : Simple Function (rows() from data.cc)[edit]

C++ Code

  octave_value retval;

  if (args.length () == 1)
    retval = args(0).rows ();
  else
    print_usage ();

  return retval;

BIST tests

/*
%!assert (rows (ones (2,5)), 2)
%!assert (rows (ones (5,2)), 5)
%!assert (rows (ones (5,4,3,2)), 2)
%!assert (rows (ones (3,4,5,2)), 3)

%!assert (rows (cell (2,5)), 2)
%!assert (rows (cell (5,2)), 5)
%!assert (rows (cell (5,4,3,2)), 2)
%!assert (rows (cell (3,4,5,2)), 3)

%!test
%! x(2,5,3).a = 1;
%! assert (rows (x), 2);
%! y(5,4,3).b = 2;
%! assert (rows (y), 5);

%!assert (rows ("Hello World"), 1)

%!assert (rows ([]), 0)
%!assert (rows (zeros (2,0), 2)

## Test input validation
%!error rows ()
%!error rows (1,2)
*/

Example 2 : Complicated input validation (issorted() from data.cc)[edit]

C++ Code

  octave_value retval;

  int nargin = args.length ();

  if (nargin < 1 || nargin > 3)
    {
      print_usage ();
      return retval;
    }

  bool by_rows = false;

  sortmode smode = ASCENDING;

  if (nargin > 1)
    {
      octave_value mode_arg;

      if (nargin == 3)
        smode = get_sort_mode_option (args(2));

      std::string tmp = args(1).xstring_value ("issorted: second argument must be a string");
      if (tmp == "rows")
        by_rows = true;
      else
        smode = get_sort_mode_option (args(1));
    }

  octave_value arg = args(0);

  if (by_rows)
    {
      if (arg.is_sparse_type ())
        error ("issorted: sparse matrices not yet supported");
      if (arg.ndims () == 2)
        retval = arg.is_sorted_rows (smode) != UNSORTED;
      else
        error ("issorted: A must be a 2-dimensional object");
    }
  else
    {
      if (arg.dims ().is_vector ())
        retval = args(0).is_sorted (smode) != UNSORTED;
      else
        error ("issorted: needs a vector");
    }

  return retval;
}

BIST tests

/*
%!shared sm, um, sv, uv
%! sm = [1, 2; 3, 4];
%! um = [3, 1; 2, 4];
%! sv = [1, 2, 3, 4];
%! uv = [2, 1, 4, 3];

%!assert (issorted (sm, "rows"))
%!assert (! issorted (um, "rows"))
%!assert (issorted (sv))
%!assert (! issorted (uv))
%!assert (issorted (sv'))
%!assert (! issorted (uv'))
%!assert (issorted (sm, "rows", "ascending"))
%!assert (! issorted (um, "rows", "ascending"))
%!assert (issorted (sv, "ascending"))
%!assert (! issorted (uv, "ascending"))
%!assert (issorted (sv', "ascending"))
%!assert (! issorted (uv', "ascending"))
%!assert (! issorted (sm, "rows", "descending"))
%!assert (issorted (flipud (sm), "rows", "descending"))
%!assert (! issorted (sv, "descending"))
%!assert (issorted (fliplr (sv), "descending"))
%!assert (! issorted (sv', "descending"))
%!assert (issorted (fliplr (sv)', "descending"))
%!assert (! issorted (um, "rows", "either"))
%!assert (! issorted (uv, "either"))
%!assert (issorted (sm, "rows", "either"))
%!assert (issorted (flipud (sm), "rows", "either"))
%!assert (issorted (sv, "either"))
%!assert (issorted (fliplr (sv), "either"))
%!assert (issorted (sv', "either"))
%!assert (issorted (fliplr (sv)', "either"))

%!error <needs a vector> issorted ([])

## Test input validation
%!error issorted () 
%!error issorted (1,2,3,4) 
%!error <second argument must be a string> issorted (1, 2)
%!error <second argument must be a string> issorted (1, {"rows"})
%!error <sparse matrices not yet supported> issorted (sparse ([1 2 3]), "rows")
%!error <A must be a 2-dimensional object> issorted (rand (2,2,2), "rows")
%!error <needs a vector> issorted (ones (2,2))
*/

Example 3 : Interactive or otherwise untestable function (keyboard() from input.cc)[edit]

C++ Code

  octave_value_list retval;

  int nargin = args.length ();

  if (nargin == 0 || nargin == 1)
    {
      unwind_protect frame;

      frame.add_fcn (octave_call_stack::restore_frame,
                     octave_call_stack::current_frame ());

      // Skip the frame assigned to the keyboard function.
      octave_call_stack::goto_frame_relative (0);

      tree_evaluator::debug_mode = true;
      tree_evaluator::quiet_breakpoint_flag = false;

      tree_evaluator::current_frame = octave_call_stack::current_frame ();

      do_keyboard (args);
    }
  else
    print_usage ();

  return retval;

BIST tests

For interactive functions there may be no way to actually test the function. In this case it is appropriate to mark the function so it will no longer show up as untested in later reports. Use the following code to do that.

/*
%!# No BIST tests possible for keyboard function.
*/

But, before you absolutely disable testing for a function, look to see if you can at least do input validation tests. In this case,

/*
%!error keyboard (1,2)
*/

Example 4 : Function tested elsewhere[edit]

The BIST tests are normally located immediately following the DEFUN block. However this is not always the case. For functions that occur in pairs like set()/get() or load()/save() the tests may be located near just one of the functions. Or the tests may be located in a single block somewhere else. This could be the end of the file, or it could be in a separate test file in the test/ directory. In this case, the function needs only to be marked with an explanation about where the tests reside. For example, in bessel.cc there is a large test block at the end of the file and the code includes a note that begins with '%!#'

/*
%!# Function besselj is tested along with other bessels at the end of this file
*/

Alternatively, it may make sense to move the tests to reside next to the function. For example, cputime() does not have tests in data.cc, but it does in test/system.tst.

Detailed Instructions[edit]

The list of undocumented C++ functions is in the Instances section. Tests should be enclosed by '/*' and '*/' multi-line comment markers. The comment block should have one newline above and below it to separate it from surrounding code.

To avoid duplication, sign up for a particular function by editing the Instances section of this wiki page and replacing '???' with your name. When you have edited a file you should verify that everything is okay by executing

make all
./run-octave
test FILENAME.cc

When that passes, let a Maintainer know so that we can check in the changes. Also, add the wiki tags

<strike> ... </strike>

to the Instances section to cross the file off the list. In addition, increment the number of documented functions by +1.

Instances[edit]

Start of Sprint

Total: 485

Fixed: 0

Owner File
??? corefcn/__ichol__.cc:__ichol0__
??? corefcn/__ilu__.cc:__ilu0__
??? corefcn/__ilu__.cc:__iluc__
??? corefcn/balance.cc:balance
??? corefcn/cellfun.cc:cellindexmat
??? corefcn/colloc.cc:colloc
??? corefcn/daspk.cc:daspk
??? corefcn/dasrt.cc:dasrt
??? corefcn/data.cc:permute
??? corefcn/data.cc:ipermute
??? corefcn/data.cc:length
??? corefcn/data.cc:ndims
??? corefcn/data.cc:numel
??? corefcn/data.cc:size
??? corefcn/data.cc:size_equal
??? corefcn/data.cc:nnz
??? corefcn/data.cc:nzmax
??? corefcn/data.cc:columns
??? corefcn/data.cc:isinteger
??? corefcn/data.cc:iscomplex
??? corefcn/data.cc:isfloat
??? corefcn/data.cc:complex
??? corefcn/data.cc:isreal
??? corefcn/data.cc:e
??? corefcn/data.cc:pi
??? corefcn/data.cc:realmax
??? corefcn/data.cc:realmin
??? corefcn/data.cc:I
??? corefcn/data.cc:false
??? corefcn/data.cc:true
??? corefcn/data.cc:resize
??? corefcn/data.cc:squeeze
??? corefcn/data.cc:full
??? corefcn/data.cc:not
??? corefcn/data.cc:uplus
??? corefcn/data.cc:uminus
??? corefcn/data.cc:plus
??? corefcn/data.cc:minus
??? corefcn/data.cc:mtimes
??? corefcn/data.cc:mrdivide
??? corefcn/data.cc:mpower
??? corefcn/data.cc:mldivide
??? corefcn/data.cc:lt
??? corefcn/data.cc:le
??? corefcn/data.cc:eq
??? corefcn/data.cc:ge
??? corefcn/data.cc:gt
??? corefcn/data.cc:ne
??? corefcn/data.cc:times
??? corefcn/data.cc:rdivide
??? corefcn/data.cc:power
??? corefcn/data.cc:ldivide
??? corefcn/data.cc:and
??? corefcn/data.cc:or
??? corefcn/data.cc:colon
??? corefcn/data.cc:tic
??? corefcn/data.cc:cputime
??? corefcn/data.cc:__sort_rows_idx__
??? corefcn/data.cc:nth_element
??? corefcn/data.cc:__accumarray_sum__
??? corefcn/data.cc:__accumarray_min__
??? corefcn/data.cc:__accumarray_max__
??? corefcn/data.cc:__accumdim_sum__
??? corefcn/data.cc:merge
??? corefcn/data.cc:repelems
??? corefcn/debug.cc:dbstop
??? corefcn/debug.cc:dbclear
??? corefcn/debug.cc:dbstatus
??? corefcn/debug.cc:dbwhere
??? corefcn/debug.cc:dbtype
??? corefcn/debug.cc:dblist
??? corefcn/debug.cc:dbstack
??? corefcn/debug.cc:dbup
??? corefcn/debug.cc:dbdown
??? corefcn/debug.cc:dbstep
??? corefcn/debug.cc:dbcont
??? corefcn/debug.cc:dbquit
??? corefcn/debug.cc:isdebugmode
??? corefcn/debug.cc:__db_next_breakpoint_quiet__
??? corefcn/dirfns.cc:cd
??? corefcn/dirfns.cc:pwd
??? corefcn/dirfns.cc:readdir
??? corefcn/dirfns.cc:mkdir
??? corefcn/dirfns.cc:rmdir
??? corefcn/dirfns.cc:link
??? corefcn/dirfns.cc:symlink
??? corefcn/dirfns.cc:readlink
??? corefcn/dirfns.cc:rename
??? corefcn/dirfns.cc:__fnmatch__
??? corefcn/dirfns.cc:filesep
??? corefcn/dirfns.cc:pathsep
??? corefcn/dirfns.cc:confirm_recursive_rmdir
??? corefcn/error.cc:rethrow
??? corefcn/error.cc:error
??? corefcn/error.cc:warning
??? corefcn/error.cc:lasterror
??? corefcn/error.cc:lasterr
??? corefcn/error.cc:lastwarn
??? corefcn/error.cc:__usage__
??? corefcn/error.cc:beep_on_error
??? corefcn/error.cc:debug_on_error
??? corefcn/error.cc:debug_on_warning
??? corefcn/fft.cc:fft
??? corefcn/fft2.cc:fft2
??? corefcn/fftn.cc:fftn
??? corefcn/fftn.cc:ifftn
??? corefcn/file-io.cc:fclose
??? corefcn/file-io.cc:fclear
??? corefcn/file-io.cc:fflush
??? corefcn/file-io.cc:fgetl
??? corefcn/file-io.cc:fgets
??? corefcn/file-io.cc:fskipl
??? corefcn/file-io.cc:fopen
??? corefcn/file-io.cc:freport
??? corefcn/file-io.cc:frewind
??? corefcn/file-io.cc:fseek
??? corefcn/file-io.cc:ftell
??? corefcn/file-io.cc:fprintf
??? corefcn/file-io.cc:printf
??? corefcn/file-io.cc:fputs
??? corefcn/file-io.cc:puts
??? corefcn/file-io.cc:sprintf
??? corefcn/file-io.cc:fscanf
??? corefcn/file-io.cc:sscanf
??? corefcn/file-io.cc:scanf
??? corefcn/file-io.cc:fread
??? corefcn/file-io.cc:fwrite
??? corefcn/file-io.cc:feof
??? corefcn/file-io.cc:ferror
??? corefcn/file-io.cc:popen
??? corefcn/file-io.cc:pclose
??? corefcn/file-io.cc:tmpfile
??? corefcn/file-io.cc:mkstemp
??? corefcn/file-io.cc:umask
??? corefcn/file-io.cc:P_tmpdir
??? corefcn/file-io.cc:SEEK_SET
??? corefcn/file-io.cc:SEEK_CUR
??? corefcn/file-io.cc:SEEK_END
??? corefcn/file-io.cc:stdin
??? corefcn/file-io.cc:stdout
??? corefcn/file-io.cc:stderr
??? corefcn/getgrent.cc:getgrent
??? corefcn/getgrent.cc:getgrgid
??? corefcn/getgrent.cc:getgrnam
??? corefcn/getgrent.cc:setgrent
??? corefcn/getgrent.cc:endgrent
??? corefcn/getpwent.cc:getpwent
??? corefcn/getpwent.cc:getpwuid
??? corefcn/getpwent.cc:getpwnam
??? corefcn/getpwent.cc:setpwent
??? corefcn/getpwent.cc:endpwent
??? corefcn/graphics.cc:ishandle
??? corefcn/graphics.cc:__is_handle_visible__
??? corefcn/graphics.cc:set
??? corefcn/graphics.cc:__get__
??? corefcn/graphics.cc:__go_figure__
??? corefcn/graphics.cc:__calc_dimensions__
??? corefcn/graphics.cc:__go_axes__
??? corefcn/graphics.cc:__go_line__
??? corefcn/graphics.cc:__go_text__
??? corefcn/graphics.cc:__go_image__
??? corefcn/graphics.cc:__go_surface__
??? corefcn/graphics.cc:__go_patch__
??? corefcn/graphics.cc:__go_hggroup__
??? corefcn/graphics.cc:__go_uimenu__
??? corefcn/graphics.cc:__go_uicontrol__
??? corefcn/graphics.cc:__go_uipanel__
??? corefcn/graphics.cc:__go_uicontextmenu__
??? corefcn/graphics.cc:__go_uitoolbar__
??? corefcn/graphics.cc:__go_uipushtool__
??? corefcn/graphics.cc:__go_uitoggletool__
??? corefcn/graphics.cc:__go_delete__
??? corefcn/graphics.cc:__go_axes_init__
??? corefcn/graphics.cc:__go_handles__
??? corefcn/graphics.cc:__go_figure_handles__
??? corefcn/graphics.cc:__go_execute_callback__
??? corefcn/graphics.cc:__image_pixel_size__
??? corefcn/graphics.cc:available_graphics_toolkits
??? corefcn/graphics.cc:register_graphics_toolkit
??? corefcn/graphics.cc:loaded_graphics_toolkits
??? corefcn/graphics.cc:drawnow
??? corefcn/graphics.cc:addlistener
??? corefcn/graphics.cc:dellistener
??? corefcn/graphics.cc:addproperty
??? corefcn/graphics.cc:waitfor
??? corefcn/graphics.cc:__zoom__
??? corefcn/help.cc:built_in_docstrings_file
??? corefcn/help.cc:get_help_text
??? corefcn/help.cc:get_help_text_from_file
??? corefcn/help.cc:__operators__
??? corefcn/help.cc:__keywords__
??? corefcn/help.cc:__builtins__
??? corefcn/help.cc:__which__
??? corefcn/help.cc:__list_functions__
??? corefcn/help.cc:doc_cache_file
??? corefcn/help.cc:texi_macros_file
??? corefcn/help.cc:info_file
??? corefcn/help.cc:info_program
??? corefcn/help.cc:makeinfo_program
??? corefcn/help.cc:suppress_verbose_help_message
??? corefcn/input.cc:input
??? corefcn/input.cc:yes_or_no
??? corefcn/input.cc:keyboard
??? corefcn/input.cc:__echostate__
??? corefcn/input.cc:readline_read_init_file
??? corefcn/input.cc:readline_re_read_init_file
??? corefcn/input.cc:add_input_event_hook
??? corefcn/input.cc:remove_input_event_hook
??? corefcn/input.cc:PS1
??? corefcn/input.cc:PS2
??? corefcn/input.cc:PS4
??? corefcn/input.cc:completion_append_char
??? corefcn/input.cc:echo_executing_commands
??? corefcn/input.cc:__request_drawnow__
??? corefcn/input.cc:__gud_mode__
??? corefcn/input.cc:filemarker
??? corefcn/inv.cc:inverse
??? corefcn/load-path.cc:genpath
??? corefcn/load-path.cc:rehash
??? corefcn/load-path.cc:command_line_path
??? corefcn/load-path.cc:restoredefaultpath
??? corefcn/load-path.cc:__pathorig__
??? corefcn/load-path.cc:path
??? corefcn/load-path.cc:addpath
??? corefcn/load-path.cc:rmpath
??? corefcn/load-path.cc:__dump_load_path__
??? corefcn/load-save.cc:load
??? corefcn/load-save.cc:save
??? corefcn/load-save.cc:crash_dumps_octave_core
??? corefcn/load-save.cc:save_default_options
??? corefcn/load-save.cc:octave_core_file_limit
??? corefcn/load-save.cc:octave_core_file_name
??? corefcn/load-save.cc:octave_core_file_options
??? corefcn/load-save.cc:save_header_format_string
??? corefcn/ls-oct-text.cc:save_precision
??? corefcn/mappers.cc:angle
??? corefcn/oct-hist.cc:edit_history
??? corefcn/oct-hist.cc:history
??? corefcn/oct-hist.cc:run_history
??? corefcn/oct-hist.cc:history_control
??? corefcn/oct-hist.cc:history_size
??? corefcn/oct-hist.cc:history_file
??? corefcn/oct-hist.cc:history_timestamp_format_string
??? corefcn/oct-hist.cc:history_save
??? corefcn/octave-link.cc:__octave_link_enabled__
??? corefcn/octave-link.cc:__octave_link_edit_file__
??? corefcn/octave-link.cc:__octave_link_message_dialog__
??? corefcn/octave-link.cc:__octave_link_question_dialog__
??? corefcn/octave-link.cc:__octave_link_file_dialog__
??? corefcn/octave-link.cc:__octave_link_list_dialog__
??? corefcn/octave-link.cc:__octave_link_input_dialog__
??? corefcn/octave-link.cc:__octave_link_show_preferences__
??? corefcn/octave-link.cc:__octave_link_show_doc__
??? corefcn/pager.cc:diary
??? corefcn/pager.cc:__diaryfile__
??? corefcn/pager.cc:__diarystate__
??? corefcn/pager.cc:more
??? corefcn/pager.cc:terminal_size
??? corefcn/pager.cc:page_output_immediately
??? corefcn/pager.cc:page_screen_output
??? corefcn/pager.cc:PAGER
??? corefcn/pager.cc:PAGER_FLAGS
??? corefcn/pr-output.cc:rats
??? corefcn/pr-output.cc:disp
??? corefcn/pr-output.cc:format
??? corefcn/pr-output.cc:__compactformat__
??? corefcn/pr-output.cc:__formatstring__
??? corefcn/pr-output.cc:fixed_point_format
??? corefcn/pr-output.cc:print_empty_dimensions
??? corefcn/pr-output.cc:split_long_rows
??? corefcn/pr-output.cc:output_max_field_width
??? corefcn/pr-output.cc:output_precision
??? corefcn/profiler.cc:__profiler_enable__
??? corefcn/profiler.cc:__profiler_reset__
??? corefcn/profiler.cc:__profiler_data__
??? corefcn/pt-jit.cc:jit_failcnt
??? corefcn/pt-jit.cc:debug_jit
??? corefcn/pt-jit.cc:jit_enable
??? corefcn/pt-jit.cc:jit_startcnt
??? corefcn/sparse.cc:issparse
??? corefcn/sparse.cc:sparse
??? corefcn/sparse.cc:spalloc
??? corefcn/sub2ind.cc:ind2sub
??? corefcn/symtab.cc:__current_scope__
??? corefcn/symtab.cc:__dump_symtab_info__
??? corefcn/symtab.cc:__get_cmdline_fcn_txt__
??? corefcn/symtab.cc:set_variable
??? corefcn/syscalls.cc:dup2
??? corefcn/syscalls.cc:exec
??? corefcn/syscalls.cc:fcntl
??? corefcn/syscalls.cc:fork
??? corefcn/syscalls.cc:getpgrp
??? corefcn/syscalls.cc:getpid
??? corefcn/syscalls.cc:getppid
??? corefcn/syscalls.cc:getegid
??? corefcn/syscalls.cc:getgid
??? corefcn/syscalls.cc:geteuid
??? corefcn/syscalls.cc:getuid
??? corefcn/syscalls.cc:kill
??? corefcn/syscalls.cc:lstat
??? corefcn/syscalls.cc:pipe
??? corefcn/syscalls.cc:stat
??? corefcn/syscalls.cc:S_ISREG
??? corefcn/syscalls.cc:S_ISDIR
??? corefcn/syscalls.cc:S_ISCHR
??? corefcn/syscalls.cc:S_ISBLK
??? corefcn/syscalls.cc:S_ISFIFO
??? corefcn/syscalls.cc:S_ISLNK
??? corefcn/syscalls.cc:S_ISSOCK
??? corefcn/syscalls.cc:gethostname
??? corefcn/syscalls.cc:uname
??? corefcn/syscalls.cc:unlink
??? corefcn/syscalls.cc:waitpid
??? corefcn/syscalls.cc:WIFEXITED
??? corefcn/syscalls.cc:WEXITSTATUS
??? corefcn/syscalls.cc:WIFSIGNALED
??? corefcn/syscalls.cc:WTERMSIG
??? corefcn/syscalls.cc:WCOREDUMP
??? corefcn/syscalls.cc:WIFSTOPPED
??? corefcn/syscalls.cc:WSTOPSIG
??? corefcn/syscalls.cc:WIFCONTINUED
??? corefcn/syscalls.cc:canonicalize_file_name
??? corefcn/syscalls.cc:F_DUPFD
??? corefcn/syscalls.cc:F_GETFD
??? corefcn/syscalls.cc:F_GETFL
??? corefcn/syscalls.cc:F_SETFD
??? corefcn/syscalls.cc:F_SETFL
??? corefcn/syscalls.cc:O_APPEND
??? corefcn/syscalls.cc:O_ASYNC
??? corefcn/syscalls.cc:O_CREAT
??? corefcn/syscalls.cc:O_EXCL
??? corefcn/syscalls.cc:O_NONBLOCK
??? corefcn/syscalls.cc:O_RDONLY
??? corefcn/syscalls.cc:O_RDWR
??? corefcn/syscalls.cc:O_SYNC
??? corefcn/syscalls.cc:O_TRUNC
??? corefcn/syscalls.cc:O_WRONLY
??? corefcn/syscalls.cc:WNOHANG
??? corefcn/syscalls.cc:WUNTRACED
??? corefcn/syscalls.cc:WCONTINUE
??? corefcn/sysdep.cc:__open_with_system_app__
??? corefcn/sysdep.cc:clc
??? corefcn/sysdep.cc:unsetenv
??? corefcn/sysdep.cc:kbhit
??? corefcn/sysdep.cc:have_window_system
??? corefcn/toplev.cc:quit
??? corefcn/toplev.cc:warranty
??? corefcn/toplev.cc:atexit
??? corefcn/tril.cc:tril
??? corefcn/typecast.cc:typecast
??? corefcn/typecast.cc:bitpack
??? corefcn/typecast.cc:bitunpack
??? corefcn/urlwrite.cc:urlwrite
??? corefcn/urlwrite.cc:urlread
??? corefcn/urlwrite.cc:__ftp__
??? corefcn/urlwrite.cc:__ftp_pwd__
??? corefcn/urlwrite.cc:__ftp_cwd__
??? corefcn/urlwrite.cc:__ftp_dir__
??? corefcn/urlwrite.cc:__ftp_ascii__
??? corefcn/urlwrite.cc:__ftp_binary__
??? corefcn/urlwrite.cc:__ftp_close__
??? corefcn/urlwrite.cc:__ftp_mode__
??? corefcn/urlwrite.cc:__ftp_delete__
??? corefcn/urlwrite.cc:__ftp_rmdir__
??? corefcn/urlwrite.cc:__ftp_mkdir__
??? corefcn/urlwrite.cc:__ftp_rename__
??? corefcn/urlwrite.cc:__ftp_mput__
??? corefcn/urlwrite.cc:__ftp_mget__
??? corefcn/variables.cc:isglobal
??? corefcn/variables.cc:who
??? corefcn/variables.cc:whos
??? corefcn/variables.cc:mlock
??? corefcn/variables.cc:munlock
??? corefcn/variables.cc:mislocked
??? corefcn/variables.cc:clear
??? corefcn/variables.cc:whos_line_format
??? corefcn/variables.cc:missing_function_hook
??? corefcn/variables.cc:__varval__
??? corefcn/variables.cc:missing_component_hook
??? dldfcn/__eigs__.cc:__eigs__
??? dldfcn/__init_fltk__.cc:__fltk_check__
??? dldfcn/__init_fltk__.cc:__init_fltk__
??? dldfcn/__init_fltk__.cc:__have_fltk__
??? dldfcn/__init_gnuplot__.cc:__init_gnuplot__
??? dldfcn/__init_gnuplot__.cc:__have_gnuplot__
??? dldfcn/__magick_read__.cc:__magick_ping__
??? dldfcn/audiodevinfo.cc:__recorder_audiorecorder__
??? dldfcn/audiodevinfo.cc:__recorder_getaudiodata__
??? dldfcn/audiodevinfo.cc:__recorder_get_channels__
??? dldfcn/audiodevinfo.cc:__recorder_get_fs__
??? dldfcn/audiodevinfo.cc:__recorder_get_id__
??? dldfcn/audiodevinfo.cc:__recorder_get_nbits__
??? dldfcn/audiodevinfo.cc:__recorder_get_sample_number__
??? dldfcn/audiodevinfo.cc:__recorder_get_tag__
??? dldfcn/audiodevinfo.cc:__recorder_get_total_samples__
??? dldfcn/audiodevinfo.cc:__recorder_get_userdata__
??? dldfcn/audiodevinfo.cc:__recorder_isrecording__
??? dldfcn/audiodevinfo.cc:__recorder_pause__
??? dldfcn/audiodevinfo.cc:__recorder_recordblocking__
??? dldfcn/audiodevinfo.cc:__recorder_record__
??? dldfcn/audiodevinfo.cc:__recorder_resume__
??? dldfcn/audiodevinfo.cc:__recorder_set_fs__
??? dldfcn/audiodevinfo.cc:__recorder_set_tag__
??? dldfcn/audiodevinfo.cc:__recorder_set_userdata__
??? dldfcn/audiodevinfo.cc:__recorder_stop__
??? dldfcn/audiodevinfo.cc:__player_audioplayer__
??? dldfcn/audiodevinfo.cc:__player_get_channels__
??? dldfcn/audiodevinfo.cc:__player_get_fs__
??? dldfcn/audiodevinfo.cc:__player_get_id__
??? dldfcn/audiodevinfo.cc:__player_get_nbits__
??? dldfcn/audiodevinfo.cc:__player_get_sample_number__
??? dldfcn/audiodevinfo.cc:__player_get_tag__
??? dldfcn/audiodevinfo.cc:__player_get_total_samples__
??? dldfcn/audiodevinfo.cc:__player_get_userdata__
??? dldfcn/audiodevinfo.cc:__player_isplaying__
??? dldfcn/audiodevinfo.cc:__player_pause__
??? dldfcn/audiodevinfo.cc:__player_playblocking__
??? dldfcn/audiodevinfo.cc:__player_play__
??? dldfcn/audiodevinfo.cc:__player_resume__
??? dldfcn/audiodevinfo.cc:__player_set_fs__
??? dldfcn/audiodevinfo.cc:__player_set_tag__
??? dldfcn/audiodevinfo.cc:__player_set_userdata__
??? dldfcn/audiodevinfo.cc:__player_stop__
??? dldfcn/audioread.cc:audioread
??? dldfcn/audioread.cc:audiowrite
??? dldfcn/audioread.cc:audioinfo
??? dldfcn/ccolamd.cc:ccolamd
??? dldfcn/ccolamd.cc:csymamd
??? dldfcn/chol.cc:chol2inv
??? dldfcn/colamd.cc:colamd
??? dldfcn/colamd.cc:symamd
??? dldfcn/colamd.cc:etree
??? dldfcn/symbfact.cc:symbfact
??? dldfcn/symrcm.cc:symrcm
??? octave-value/ov-cell.cc:iscell
??? octave-value/ov-cell.cc:cell
??? octave-value/ov-cell.cc:iscellstr
??? octave-value/ov-cell.cc:cellstr
??? octave-value/ov-class.cc:__parent_classes__
??? octave-value/ov-class.cc:isobject
??? octave-value/ov-class.cc:ismethod
??? octave-value/ov-class.cc:__methods__
??? octave-value/ov-class.cc:superiorto
??? octave-value/ov-class.cc:inferiorto
??? octave-value/ov-classdef.cc:__meta_get_package__
??? octave-value/ov-classdef.cc:__superclass_reference__
??? octave-value/ov-classdef.cc:__meta_class_query__
??? octave-value/ov-classdef.cc:metaclass
??? octave-value/ov-fcn-handle.cc:functions
??? octave-value/ov-fcn-handle.cc:func2str
??? octave-value/ov-java.cc:__java_init__
??? octave-value/ov-java.cc:__java_exit__
??? octave-value/ov-java.cc:__java_get__
??? octave-value/ov-java.cc:__java_set__
??? octave-value/ov-java.cc:java2mat
??? octave-value/ov-java.cc:java_matrix_autoconversion
??? octave-value/ov-java.cc:java_unsigned_autoconversion
??? octave-value/ov-java.cc:debug_java
??? octave-value/ov-struct.cc:isstruct
??? octave-value/ov-struct.cc:__fieldnames__
??? octave-value/ov-struct.cc:isfield
??? octave-value/ov-struct.cc:struct_levels_to_print
??? octave-value/ov-struct.cc:print_struct_array_contents
??? octave-value/ov-usr-fcn.cc:nargin
??? octave-value/ov-usr-fcn.cc:nargout
??? octave-value/ov-usr-fcn.cc:optimize_subsasgn_calls
??? octave-value/ov.cc:subsref
??? octave.cc:__version_info__
??? parse-tree/lex.ll:__display_tokens__
??? parse-tree/lex.ll:__token_count__
??? parse-tree/lex.ll:__lexer_debug_flag__
??? parse-tree/oct-parse.in.yy:autoload
??? parse-tree/oct-parse.in.yy:mfilename
??? parse-tree/oct-parse.in.yy:source
??? parse-tree/oct-parse.in.yy:feval
??? parse-tree/oct-parse.in.yy:builtin
??? parse-tree/oct-parse.in.yy:assignin
??? parse-tree/oct-parse.in.yy:evalin
??? parse-tree/oct-parse.in.yy:__parser_debug_flag__
??? parse-tree/oct-parse.in.yy:__parse_file__
??? corefcn/DASRT-opts.cc:dasrt_options
??? corefcn/Quad-opts.cc:quad_options
??? corefcn/DASSL-opts.cc:dassl_options
??? corefcn/LSODE-opts.cc:lsode_options
??? corefcn/DASPK-opts.cc:daspk_options