Mercurial > octave
annotate scripts/testfun/private/dump_demos.m @ 22126:3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
dump_demos.m: Use ~ instead of ! for matlab compatibility.
Isolate demos in functions.
html_compare_plot_demos.m: Wrap html page after 50 demos per
page, add prevoius and next links per page.
author | Andreas Weber <andy.weber.aw@gmail.com> |
---|---|
date | Sat, 16 Jul 2016 17:49:30 +0200 |
parents | ffad2baa90f7 |
children | 283d8dfcad37 |
rev | line source |
---|---|
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
1 ## Copyright (C) 2010 Søren Hauberg |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
2 ## |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
3 ## This file is part of Octave. |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
4 ## |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or (at |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
8 ## your option) any later version. |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
9 ## |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, but |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
13 ## General Public License for more details. |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
14 ## |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
16 ## along with Octave; see the file COPYING. If not, see |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
17 ## <http://www.gnu.org/licenses/>. |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
18 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
20 ## @deftypefn {} {} dump_demos () |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
21 ## @deftypefnx {} {} dump_demos (@var{dirs}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
22 ## @deftypefnx {} {} dump_demos (@var{dirs}, @var{mfile}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
23 ## @deftypefnx {} {} dump_demos (@var{dirs}, @var{mfile}, @var{fmt}) |
18895 | 24 ## Produce a script, with the name specified by @var{mfile}, containing |
25 ## the demos in the directories, @var{dirs}. The demos are assumed to produce | |
26 ## graphical output, whose renderings are saved with the specified format, | |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
27 ## @var{fmt}. |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
28 ## |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
29 ## The defaults for each input are; |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
30 ## |
18895 | 31 ## @table @var |
18875
0075f3fba930
dump_demos.m: Update to match new plot directory structure
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18874
diff
changeset
|
32 ## @item @var{dirs} |
18925
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
33 ## @code{@{"plot/appearance", "plot/draw", "plot/util", "image"@}} |
19152
0f9c5a15c8fa
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
18959
diff
changeset
|
34 ## |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
35 ## @item @var{mfile} |
19152
0f9c5a15c8fa
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
18959
diff
changeset
|
36 ## @qcode{"dump.m"} |
0f9c5a15c8fa
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
18959
diff
changeset
|
37 ## |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
38 ## @item @var{fmt} |
19152
0f9c5a15c8fa
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
18959
diff
changeset
|
39 ## @qcode{"png"} |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
40 ## @end table |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
41 ## |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
42 ## For example, to produce PNG output for all demos of the functions |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
43 ## in the plot directory; |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
44 ## |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
45 ## @example |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
46 ## dump_demos plot dump.m png |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
47 ## @end example |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
48 ## @seealso{fntests, test, demo} |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
49 ## @end deftypefn |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
50 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
51 ## Author: Søren Hauberg <soren@hauberg.org> |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
52 |
18925
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
53 function dump_demos (dirs={"plot/appearance", "plot/draw", "plot/util", "image"}, output="dump_plot_demos.m", fmt="png") |
18875
0075f3fba930
dump_demos.m: Update to match new plot directory structure
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18874
diff
changeset
|
54 |
0075f3fba930
dump_demos.m: Update to match new plot directory structure
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18874
diff
changeset
|
55 if (nargin > 3) |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
56 print_usage (); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
57 endif |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
58 |
18895 | 59 if (ischar (dirs)) |
60 dirs = {dirs}; | |
61 elseif (! iscellstr (dirs)) | |
62 error ("dump_demos: DIRS must be a cell array of strings with directory names"); | |
63 endif | |
64 | |
65 [~, funcname, ext] = fileparts (output); | |
66 if (isempty (ext)) | |
67 output = [output ".m"]; | |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
68 endif |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
69 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
70 ## Create script beginning (close figures, etc.) |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
71 fid = fopen (output, "w"); |
18875
0075f3fba930
dump_demos.m: Update to match new plot directory structure
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18874
diff
changeset
|
72 fprintf (fid, "%% DO NOT EDIT! Generated automatically by dump_demos.m\n"); |
18895 | 73 fprintf (fid, "function %s ()\n", funcname); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
74 fprintf (fid, "close all\n"); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
75 fprintf (fid, "more off\n"); |
18925
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
76 fprintf (fid, "diary diary.log\n"); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
77 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
78 ## Run and print the demos in each directory |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
79 for i = 1:numel (dirs) |
18895 | 80 d = dirs{i}; |
81 if (! is_absolute_filename (d)) | |
82 d = dir_in_loadpath (d); | |
18875
0075f3fba930
dump_demos.m: Update to match new plot directory structure
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18874
diff
changeset
|
83 endif |
18895 | 84 if (! exist (d, "dir")) |
85 error ("dump_demos: directory %s does not exist", d); | |
18875
0075f3fba930
dump_demos.m: Update to match new plot directory structure
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18874
diff
changeset
|
86 endif |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
87 dump_all_demos (d, fid, fmt); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
88 endfor |
18875
0075f3fba930
dump_demos.m: Update to match new plot directory structure
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18874
diff
changeset
|
89 |
18925
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
90 ## Stop and flush diary |
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
91 fprintf (fid, "diary off\n"); |
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
92 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
93 ## Create script ending |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
94 fprintf (fid, "end\n\n") |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
95 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
96 ## Close script |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
97 fclose (fid); |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
98 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
99 endfunction |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
100 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
101 function dump_all_demos (directory, fid, fmt) |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
102 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
103 dirinfo = dir (fullfile (directory, "*.m")); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
104 flist = {dirinfo.name}; |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
105 ## Remove uigetdir, uigetfile, uiputfile, etc. |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
106 flist = flist(! strncmp (flist, "ui", 2)); |
18895 | 107 ## Remove linkaxes, linkprops |
108 flist = flist(! strncmp (flist, "link", 4)); | |
109 ## Remove colormap | |
110 flist = flist(! strncmp (flist, "colormap", 8)); | |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
111 for i = 1:numel (flist) |
18895 | 112 fcn = flist{i}; |
113 fcn(end-1:end) = []; # remove .m | |
114 demos = get_demos (fcn); | |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
115 for d = 1:numel (demos) |
18895 | 116 idx = sprintf ("%02d", d); |
18925
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
117 base_fn = sprintf ("%s_%s", fcn, idx); |
18959
4c45986a278e
dump_demos.m: Check if file exists before demo and add timing.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18925
diff
changeset
|
118 fn = sprintf ('%s.%s', base_fn, fmt); |
22126
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
119 ## Wrap each demo in a function which create a local scope |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
120 ## to prevent that a previous demo overwrites i or pi, for example |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
121 fprintf (fid, "\nfunction %s ()\n", base_fn); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
122 fprintf (fid, " try\n"); |
18959
4c45986a278e
dump_demos.m: Check if file exists before demo and add timing.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18925
diff
changeset
|
123 ## First check if the file already exists, skip demo if found |
22126
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
124 fprintf (fid, " if (~ exist ('%s', 'file'))\n", fn); |
19833
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19152
diff
changeset
|
125 ## Invoke the ancient, deprecated random seed generators, but there is an |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19152
diff
changeset
|
126 ## initialization mismatch with the more modern generators reported |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19152
diff
changeset
|
127 ## here (https://savannah.gnu.org/bugs/?42557). |
22126
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
128 fprintf (fid, " rand ('seed', 1);\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
129 fprintf (fid, " tic ();\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
130 fprintf (fid, " %s\n\n", demos{d}); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
131 fprintf (fid, " t_plot = toc ();\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
132 fprintf (fid, " fig = (get (0, 'currentfigure'));\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
133 fprintf (fid, " if (~ isempty (fig))\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
134 fprintf (fid, " figure (fig);\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
135 fprintf (fid, " fprintf ('Printing ""%s"" ... ');\n", fn); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
136 fprintf (fid, " tic ();\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
137 fprintf (fid, " print ('-d%s', '%s');\n", fmt, fn); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
138 fprintf (fid, " t_print = toc ();\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
139 fprintf (fid, " fprintf ('[%%f %%f] done\\n',t_plot, t_print);\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
140 fprintf (fid, " end\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
141 ## Temporary fix for cruft accumulating in figure window. |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
142 fprintf (fid, " close ('all');\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
143 fprintf (fid, " else\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
144 fprintf (fid, " fprintf ('File ""%s"" already exists.\\n');\n", fn); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
145 fprintf (fid, " end\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
146 fprintf (fid, " catch\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
147 fprintf (fid, " fprintf ('ERROR in %s: %%s\\n', lasterr ());\n", base_fn); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
148 fprintf (fid, " err_fid = fopen ('%s.err', 'w');\n", base_fn); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
149 fprintf (fid, " fprintf (err_fid, '%%s', lasterr ());\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
150 fprintf (fid, " fclose (err_fid);\n"); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
151 fprintf (fid, " end\n"); |
22126
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
152 fprintf (fid, "end\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
153 fprintf (fid, "%s ();\n", base_fn); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
154 endfor |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
155 endfor |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
156 fprintf (fid, "close all\n"); |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
157 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
158 endfunction |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
159 |
18895 | 160 function retval = get_demos (fcn) |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
161 |
18895 | 162 [code, idx] = test (fcn, "grabdemo"); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
163 num_demos = length (idx) - 1; |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
164 retval = cell (1, num_demos); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
165 ## Now split the demos into a cell array |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
166 for k = 1:num_demos |
18895 | 167 retval{k} = oct2mat (code(idx(k):idx(k+1)-1)); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
168 endfor |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
169 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
170 endfunction |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
171 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
172 function code = oct2mat (code) |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
173 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
174 ## Simple hacks to make things Matlab compatible |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
175 code = strrep (code, "%!", "%%"); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
176 code = strrep (code, "!", "~"); |
18895 | 177 ## Simply replacing double quotes with single quotes |
18875
0075f3fba930
dump_demos.m: Update to match new plot directory structure
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18874
diff
changeset
|
178 ## causes problems with strings like 'hello "world"' |
18895 | 179 ## More complicated regexprep targets only full double quoted strings |
180 code = regexprep (code, "^([^']*)\"(.*)\"", "$1'$2'", | |
181 "lineanchors", "dotexceptnewline"); | |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
182 code = strrep (code, "#", "%"); |
18895 | 183 ## Fix the format specs for the errorbar demos changed by the line above |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
184 code = strrep (code, "%r", "#r"); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
185 code = strrep (code, "%~", "#~"); |
18895 | 186 endkeywords = {"endfor", "endfunction", "endif", "endwhile", "end_try_catch"}; |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
187 for k = 1:numel (endkeywords) |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
188 code = strrep (code, endkeywords{k}, "end"); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
189 endfor |
18895 | 190 commentkeywords = {"unwind_protect", "end_unwind_protect"}; |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
191 for k = 1:numel (commentkeywords) |
18895 | 192 code = strrep (code, commentkeywords{k}, ["%" commentkeywords{k}]); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
193 endfor |
18895 | 194 |
195 ## Fix up sombrero which now has default argument in Octave | |
196 code = strrep (code, "sombrero ()", "sombrero (41)"); | |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
197 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
198 endfunction |
18895 | 199 |