Clean up the Examples provided to the user (Major change)
A multi-line Ruby macro is used to differentiate between the Examples presented to the user from those which are used for testing. For instance,
<%- if test_mode -%>
plotargs = bp.parse_commandline()
bp.make_plot_row(results, **plotargs)
bp.export(**plotargs)
<%- else -%>
bp.make_plot_row(results)
plt.show()
<%- end -%>
which for the test mode reduces to
plotargs = bp.parse_commandline()
bp.make_plot_row(results, **plotargs)
bp.export(**plotargs)
and, for the public user script, to
bp.make_plot_row(results)
plt.show()
Hence, in this way, the details of the test scripts remains hidden from the user, and the script remains readable and less error-prone, regarding long-term maintenance.
-
Another mode,
figure_mode, is added to produce the figures for the documentation (viafigurestarget). -
The unneeded function
show_or_exportis removed fromba_plot. Instead, a new functionexport(**plotargs)is added toba_plotand whenever showing the plot is needed, the standardmatplotlib.pyplot.showmust be used. -
auto/MiniExamplesandauto/Examplesare reproduced. -
The following reference data are updated:
specular/SpecularSimulationWithRoughnessspecular/RoughnessModelspecular/MagneticLayerImperfectscatter2d/CorrelatedRoughnessscatter2d/CoreShellNanoparticles2offspec/OffspecResolved
-
Problem:
Example.scatter2d.RoughAndSpecular.persistdoes not pass on MacOS-ARM CI machine, although it is passed on Linux, Windows and MacOS-x64 CI machines. Reasons are to be investigated; see issue #864 .
Some examples of the applied modifications to raw examples:
<%= sm ? "plt.close() # " : "" %>plt.show()
becomes
<%- if test_mode -%>
plt.close()
<%- else -%>
plt.show()
plotargs = bp.parse_commandline()
bp.make_plot_row(results, **plotargs)
bp.show_or_export(**plotargs)
becomes
<%- if test_mode or figure_mode -%>
plotargs = bp.parse_commandline()
bp.make_plot_row(results, **plotargs)
bp.export(**plotargs)
<%- else -%>
bp.make_plot_row(results)
plt.show()
<%- end -%>
<%= sm ? "plt.close() # (hide plot) " :"" %>fit_objective.initPlot(10, plotter)
becomes
<%- if test_mode -%>
plt.close() # hide plot
<%- else -%>
fit_objective.initPlot(10, plotter)
bp.parse_args(intensity_min=1, aspect='auto')
sample = get_sample()
simulation = get_simulation(sample)
result = simulation.simulate()
bp.plot_simulation_result(result)
bp.show_or_export()
becomes
sample = get_sample()
simulation = get_simulation(sample)
result = simulation.simulate()
<%- if test_mode -%>
plotargs = bp.parse_commandline()
plotargs['intensity_min'] = 1
plotargs['aspect'] = 'auto'
bp.plot_simulation_result(result, **plotargs)
bp.export(**plotargs)
<%- else -%>
bp.plot_simulation_result(result)
plt.show()
<%- end -%>
Related to issues #912 (closed) and #1008 (closed)