File: index.rst

package info (click to toggle)
dynare 6.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 67,648 kB
  • sloc: cpp: 79,109; ansic: 28,917; objc: 12,430; yacc: 4,528; pascal: 1,993; lex: 1,441; sh: 1,129; python: 634; makefile: 626; lisp: 163; xml: 18
file content (140 lines) | stat: -rw-r--r-- 4,893 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
.. m-unit-tests documentation master file, created by
   sphinx-quickstart on Fri Oct 31 14:20:36 2014.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

Dynare's m-unit-tests module
============================

Contents:

.. toctree::
   :maxdepth: 2


.. function:: get_directory_description(basedir)

   Returns a list of ``*.m`` files in directory ``basedir`` and its
   subfolders. The input argument ``basedir`` is a string and the
   returned argument is cell of strings with \\(n\\) elements where
   each element is the relative address of a file. The default value
   for ``basedir``is the current directory.


.. function:: is_unit_test_available(fname)

   Returns ``true``  if unit tests  defined in matlab  routine ``fname``
   have  to be  run,  ``false`` otherwise.  The  mandatory input  argument
   ``fname`` is a  string. The returned argument is set  equal to ``true`` if
   and only if the file contains the following line:

        .. code-block:: matlab

           return % --*-- Unit tests --*--

   after the core part of the routine, or

        .. code-block:: matlab

           end % classdef --*-- Unit tests --*--

   at the end of the definition of a class.

.. function:: mtest(fname[, fpath])

   Extracts  unit  test   sections  from  matlab's  routine  ``fname``
   executes the tests and reports results.

   **INPUTS**
     - ``fname`` (*string*) Name of the Matlab routine where unit
       tests to be run are defined.
     - ``fpath`` (*string*) Path to the routine (optional).

   **OUTPUTS**
     - ``check`` (*integer*) Scalar equal to 0 if the test fails and 1
       otherwise.
     - ``info`` (*cell*) Describes the test results. Cell info has nn
       rows and five columns. Each row correponds to a unit test in
       fname, and the columns report the following informations:

       - Column 1 Name of the tested routine.
       - Column 2 Number of the unit test.
       - Column 3 Status of the unit test (0 if the unit test fails, 1 otherwise).
       - Column 4 Details about the failure (vector of 0 and 1).
       - Column 5 Elapsed time in seconds (cpu time).

   **REMARKS**
     1. If only one input argument is provided, ``fname`` must contain
        the full path to the routine.
     2. For each unit test, :func:`mtest` generates a matlab function
        saved in ``<fname>_test_x.m`` and runs the function. If the
        function does not return errors the file is erased, otherwise the
        file is kept on disk.

.. function:: dtest(fname[, tpath])

   Runs unit tests defined in ``fname``, by calling :func:`mtest`
   routine, and displays the results.

   **INPUTS**
     - ``fname`` (*string*) Name (with path) of the Matlab routine
       where unit tests to be run are defined.
     - ``tpath`` (*string*) Path to the folder where the test routines
       generated by :func:`mtest` should be temporarly saved
       (optional, default value is the current directory).

   **OUTPUTS**
     None

   **REMARKS**
     1. The full path to the tested routine must be provided in ``fname``.

.. function:: run_unit_tests(listoffiles)

   Runs unit tests defined in a collection of files.

   **INPUTS**
     - ``listoffiles`` (*cell of strings*) The list of m files (with
       path) where the unit tests are written. This cell, with
       \\(n\\) elements, is the output of :func:`get_directory_description` routine.

   **OUTPUTS**
     - ``report`` (*cell*) Results of the unit tests (\\(n\\) rows
       and five columns). Each row stores the second output argument
       of :func:`mtest` routine (info).
     - ``time`` (*double*) Current date and time as date vector (see
       matlab's documentation for the ``clock`` function).


.. function:: run_unit_tests_in_directory(dirname[, savereport[, printreport, sendreport])

   Runs all the unit tests defined in a directory (and subfolders).

   **INPUTS**
     - ``dirname`` (*string*) Path to the directory.
     - ``savereport`` (*logical*) Scalar equal to ``false`` or ``true``. If equal to ``true`` generated report is saved in a ``*.mat`` file.
     - ``printreport`` (*logical*) Scalar equal to ``false`` or ``true``. If equal to ``true`` generated report is printed on screen.
     - ``sendreport`` (*string*) Email adress. If not empty generated report is sent by email.

   **OUTPUTS**
     - ``report`` (*cell*) First output argument of :func:`run_unit_test routine`.

   **REMARKS**
     1. Git needs to be available on the system, and it is assumed that the content of ``dirname`` is versionned with Git.


.. function:: display_report(report)

   Displays detailed report for the testsuite.

   **INPUTS**
     - ``report`` (*cell*) Output of :func:`run_unit_tests_in_directory`.



Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`