Mercurial > octave
annotate scripts/testfun/private/dump_demos.m @ 22151:283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
* brighten.m, colorcube.m: Replace 'tic' option to axis with setting properties on gca.
* axis.m: Use 'origin', rather than 'zero', for xaxislocation, yaxislocation
demos.
* datetick.m: Fix typo '2' -> 'ax'.
* legend.m: Use labels with call to legend() rather than embedding labels
in call to plot.
* text.m, xlim.m, ylim.m, zlim.m: Remove asserts from demo blocks.
* isonormals.m: Use Matlab syntax in string definitions.
* light.m: Use space between function name and opening parenthesis in demos.
Add missing semicolon at end of lines.
* dump_demos.m: Add helper functions sombrero() and rgbplot() to script so that
demos will run cleanly in Matlab.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 20 Jul 2016 08:54:51 -0700 |
parents | 3f8ed6d7cb1c |
children | 829e0aafebdc |
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 |
22151
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
90 ## Add helper functions like sombrero |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
91 dump_helper_fcns (fid); |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
92 |
18925
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
93 ## Stop and flush diary |
22151
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
94 fprintf (fid, "\ndiary off\n"); |
18925
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
95 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
96 ## Create script ending |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
97 fprintf (fid, "end\n\n") |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
98 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
99 ## Close script |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
100 fclose (fid); |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
101 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
102 endfunction |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
103 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
104 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
|
105 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
106 dirinfo = dir (fullfile (directory, "*.m")); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
107 flist = {dirinfo.name}; |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
108 ## Remove uigetdir, uigetfile, uiputfile, etc. |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
109 flist = flist(! strncmp (flist, "ui", 2)); |
18895 | 110 ## Remove linkaxes, linkprops |
111 flist = flist(! strncmp (flist, "link", 4)); | |
112 ## Remove colormap | |
113 flist = flist(! strncmp (flist, "colormap", 8)); | |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
114 for i = 1:numel (flist) |
18895 | 115 fcn = flist{i}; |
116 fcn(end-1:end) = []; # remove .m | |
117 demos = get_demos (fcn); | |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
118 for d = 1:numel (demos) |
18895 | 119 idx = sprintf ("%02d", d); |
18925
87324260043d
Improve plot comparison scripts.
Andreas Weber <andy.weber.aw@gmail.com>
parents:
18897
diff
changeset
|
120 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
|
121 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
|
122 ## 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
|
123 ## 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
|
124 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
|
125 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
|
126 ## 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
|
127 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
|
128 ## 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
|
129 ## 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
|
130 ## 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
|
131 fprintf (fid, " rand ('seed', 1);\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
132 fprintf (fid, " tic ();\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
133 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
|
134 fprintf (fid, " t_plot = toc ();\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
135 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
|
136 fprintf (fid, " if (~ isempty (fig))\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
137 fprintf (fid, " figure (fig);\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
138 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
|
139 fprintf (fid, " tic ();\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
140 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
|
141 fprintf (fid, " t_print = toc ();\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
142 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
|
143 fprintf (fid, " end\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
144 ## 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
|
145 fprintf (fid, " close ('all');\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
146 fprintf (fid, " else\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
147 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
|
148 fprintf (fid, " end\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
149 fprintf (fid, " catch\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
150 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
|
151 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
|
152 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
|
153 fprintf (fid, " fclose (err_fid);\n"); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
154 fprintf (fid, " end\n"); |
22126
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
155 fprintf (fid, "end\n"); |
3f8ed6d7cb1c
Improve plot comparison in sripts/testfun
Andreas Weber <andy.weber.aw@gmail.com>
parents:
21758
diff
changeset
|
156 fprintf (fid, "%s ();\n", base_fn); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
157 endfor |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
158 endfor |
22151
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
159 fprintf (fid, "\nclose all\n"); |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
160 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
161 endfunction |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
162 |
18895 | 163 function retval = get_demos (fcn) |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
164 |
18895 | 165 [code, idx] = test (fcn, "grabdemo"); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
166 num_demos = length (idx) - 1; |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
167 retval = cell (1, num_demos); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
168 ## Now split the demos into a cell array |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
169 for k = 1:num_demos |
18895 | 170 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
|
171 endfor |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
172 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
173 endfunction |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
174 |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
175 function code = oct2mat (code) |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
176 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
177 ## Simple hacks to make things Matlab compatible |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
178 code = strrep (code, "%!", "%%"); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
179 code = strrep (code, "!", "~"); |
18895 | 180 ## 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
|
181 ## causes problems with strings like 'hello "world"' |
18895 | 182 ## More complicated regexprep targets only full double quoted strings |
183 code = regexprep (code, "^([^']*)\"(.*)\"", "$1'$2'", | |
184 "lineanchors", "dotexceptnewline"); | |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
185 code = strrep (code, "#", "%"); |
18895 | 186 ## 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
|
187 code = strrep (code, "%r", "#r"); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
188 code = strrep (code, "%~", "#~"); |
18895 | 189 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
|
190 for k = 1:numel (endkeywords) |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
191 code = strrep (code, endkeywords{k}, "end"); |
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
192 endfor |
18895 | 193 commentkeywords = {"unwind_protect", "end_unwind_protect"}; |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
194 for k = 1:numel (commentkeywords) |
18895 | 195 code = strrep (code, commentkeywords{k}, ["%" commentkeywords{k}]); |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
196 endfor |
18895 | 197 |
198 ## Fix up sombrero which now has default argument in Octave | |
199 code = strrep (code, "sombrero ()", "sombrero (41)"); | |
21758
ffad2baa90f7
maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents:
20852
diff
changeset
|
200 |
18874
c74673161752
Add scripts to help validate plot results.
Ben Abbott <bpabbott@mac.com>
parents:
diff
changeset
|
201 endfunction |
18895 | 202 |
22151
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
203 function dump_helper_fcns (fid) |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
204 |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
205 fprintf (fid, "\n%s\n", repmat ("%", [1, 60])); |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
206 fdisp (fid, "% Helper functions"); |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
207 fprintf (fid, "%s\n", repmat ("%", [1, 60])); |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
208 |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
209 ## Add sombrero function |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
210 fdisp (fid, [ |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
211 "function [x, y, z] = sombrero (n) " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
212 " " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
213 " if (nargin == 0) " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
214 " n = 41; " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
215 " end " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
216 " " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
217 " [xx, yy] = meshgrid (linspace (-8, 8, n)); " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
218 " r = sqrt (xx.^2 + yy.^2) + eps; % eps prevents div/0 errors " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
219 " zz = sin (r) ./ r; " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
220 " " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
221 " if (nargout == 0) " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
222 " surf (xx, yy, zz); " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
223 " elseif (nargout == 1) " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
224 " x = zz; " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
225 " else " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
226 " x = xx; " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
227 " y = yy; " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
228 " z = zz; " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
229 " end " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
230 " " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
231 "end " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
232 ]); # End of sombrero dump |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
233 |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
234 fprintf (fid, "\n"); |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
235 |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
236 ## Add rgbplot function |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
237 fdisp (fid, [ |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
238 "function h = rgbplot (cmap, style) " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
239 " " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
240 " if (nargin == 1) " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
241 " style = 'profile'; " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
242 " end " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
243 " " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
244 " switch (lower (style)) " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
245 " case 'profile' " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
246 " htmp = plot (cmap(:,1),'r', cmap(:,2),'g', cmap(:,3),'b'); " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
247 " set (gca (), 'ytick', 0:0.1:1); " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
248 " set (gca (), 'xlim', [0 rows(cmap)]); " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
249 " case 'composite' " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
250 " htmp = image (1:rows(cmap)); " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
251 " set (gca, 'ytick', []); " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
252 " colormap (cmap); " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
253 " end " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
254 " xlabel ('color index'); " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
255 " " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
256 " if (nargout > 0) " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
257 " h = htmp; " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
258 " end " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
259 " " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
260 "end " |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
261 ]); # End of rgbplot dump |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
262 |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
263 fprintf (fid, "%s\n", repmat ("%", [1, 60])); |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
264 |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
265 endfunction |
283d8dfcad37
Make demos Matlab compatible for comparison with dump_demos script.
Rik <rik@octave.org>
parents:
22126
diff
changeset
|
266 |