Hi,<br><br><div class="gmail_quote">On Fri, Feb 10, 2012 at 12:45 PM, Erik Lindahl <span dir="ltr">&lt;<a href="mailto:erik@kth.se">erik@kth.se</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div style="word-wrap:break-word">
Hi,
<div><br>
</div>
<div>It will certainly be easier to have tests with close-to-perfect conservation.</div></div></blockquote><div><br></div><div>Yes. It will also help if the test set will be always up to date. Jenkins should guarantee that by forcing developers to change the expected result whenever a different algorithm doesn&#39;t have a binary identical result.</div>

<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div>However, it&#39;s too late in the cycle to decide that we&#39;re not going to release anything without tests. We should still do them, but I would like to see two separate parts:</div></div></blockquote><div>But I think we have to somehow give it a high priority and make sure a large percentage of us developers are contributing to this tasks. I don&#39;t think it can be accomplished by just a few people. When a large part of basic code is rewritten in C++, we should already have the tests to know when we create regression bugs. </div>

<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div>1) Low-level tests that specifically check the output for several sets of input for a *module*, i.e. calling routines rather than running a simulation. The point is that this will isolate errors either to a specific module, or to modules it depends on.
 However, when those modules too should have tests it will be a 5-min job to find what file+routine the bug is likely to be in.</div></div></blockquote><div>What framework should be used to write these unit tests? Should those be written using GoogleTest as those tests written by Teemu? This would mean that the tests only compile with C++ but I don&#39;t think this would be a problem. </div>

<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div>2) Higher-level tests that check whether this feature appears to work in practice in a simulation. The point of these tests is mostly to make sure other new features don&#39;t break our module.</div></div></blockquote>

<div>How should we run these integration tests? Should we run them similar to how the current test-set is run? I.e have scripts which run pdb2gmx, grompp, mdrun and parse the output for the results and errors. If so do we want to base it onto the existing perl scripts, have some existing external framework or write some new scripts from scratch?</div>

<div><br></div><div>Roland</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>
</div>
<div>Cheers,</div>
<div><br>
</div>
<div>Erik</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div><div class="im">
<div>On Feb 6, 2012, at 4:17 PM, Berk Hess wrote:</div>
<br>
</div><blockquote type="cite">
<div bgcolor="#FFFFFF" text="#000000"><div class="im">Hi,<br>
<br>
I agree test sets are very important.<br>
Having good tests will make development and especially the process of accepting contributions much easier.<br>
<br>
Now that we have the new, by default, energy conserving loops, I realize that energy conservation<br>
is extremely useful for validation. I think that having tests that check energy conservation and particular<br>
energy values of particular (combinations of) functionality will catch a lot of problems.<br>
The problems is that MD is chaotic and with non energy-conserving setups the divergence is extremely fast.<br>
With energy conservation running 20 steps with nstlist=10, checking the conserved energy + a few terms<br>
would be enough for testing most modules, I think.<br>
We still want some more extended tests, but that could be a separate set.<br>
<br>
So setting up a framework for the simple tests should not be too hard.<br>
Then we need to come up with a set of tests and reference values.<br>
<br>
Cheers,<br>
<br>
Berk<br>
<br>
On 02/05/2012 04:56 AM, Roland Schulz wrote:
</div><div><div class="h5"><blockquote type="cite">
Hi,
<div><br>
</div>
<div>we agreed that we would want to have a test set for 4.6 but so far we haven&#39;t made any progress on it (as far as I know). I want to try to get this work started by posting here a list of questions I have about the new test set. Please add your own questions
 and answer any questions you can (no need to try to answer all questions).</div>
<div><br>
</div>
<div>- Why do the current tests fail? Is it only because of different floating point rounding or are there other problems? What&#39;s the best procedure to find out why a test fails?</div>
<div>- Which tests should be part of the new test set? </div>
<div>- Should the current tests all be part of the new test set?</div>
<div>- How should the new test be implemented? Should the comparison with the reference value be done in C (within mdrun), ctest script, python or perl?</div>
<div>- Should the new test execute mdrun for each test? Or should we somehow (e.g. python wrapper or within mdrun) load the binary only once and run many test per execution?</div>
<div>- What are the requirements for the new test set? E.g. how easy should it be to see whats wrong when a test fails? Should the test support being run under valgrind? Other?</div>
<div>- Do we have any other bugs which have to be solved before the test can be implemented? E.g. is the problem with shared libraries solved? Are there any open redmine issues related to the new test set?</div>
<div>- Should we have a policy that everyone who adds a feature also has to provide tests covering those features?</div>
<div>- Should we have a conference call to discuss the test set? If yes when?</div>
<div>- Should we agree that we won&#39;t release 4.6 without the test set to give it a high priority?</div>
<div>Roland<br clear="all">
<div><br>
</div>
-- <br>
ORNL/UT Center for Molecular Biophysics <a href="http://cmb.ornl.gov/" target="_blank">
cmb.ornl.gov</a><br>
<a href="tel:865-241-1537" value="+18652411537" target="_blank">865-241-1537</a>, ORNL PO BOX 2008 MS6309<br>
</div>
<br>
<fieldset></fieldset> <br>
</blockquote>
<br>
</div></div></div><div class="im">
-- <br>
gmx-developers mailing list<br>
<a href="mailto:gmx-developers@gromacs.org" target="_blank">gmx-developers@gromacs.org</a><br>
<a href="http://lists.gromacs.org/mailman/listinfo/gmx-developers" target="_blank">http://lists.gromacs.org/mailman/listinfo/gmx-developers</a><br>
Please don&#39;t post (un)subscribe requests to the list. Use the <br>
www interface or send it to <a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>.</div></blockquote><span class="HOEnZb"><font color="#888888">
</font></span></div><span class="HOEnZb"><font color="#888888">
<br>
<div><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px">
<div style="word-wrap:break-word">
<span style="text-indent:0px;letter-spacing:normal;font-variant:normal;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px">
<div style="word-wrap:break-word">
<div>--<br>
Erik Lindahl &lt;<a href="mailto:erik@kth.se" target="_blank">erik@kth.se</a>&gt;<br>
Professor of Theoretical &amp; Computational Biophysics<br>
Department of Theoretical Physics &amp; Swedish e-Science Research Center<br>
Royal Institute of Technology, Stockholm, Sweden<br>
Tel1: <a href="tel:%2B46855378029" value="+46855378029" target="_blank">+46855378029</a>  Tel2: <a href="tel:%2B468164675" value="+468164675" target="_blank">+468164675</a>  Cell: <a href="tel:%2B46734618050" value="+46734618050" target="_blank">+46734618050</a></div>


</div>
</span></div>
</span></span></div>
<br>
</font></span></div>
</div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br>ORNL/UT Center for Molecular Biophysics <a href="http://cmb.ornl.gov">cmb.ornl.gov</a><br>865-241-1537, ORNL PO BOX 2008 MS6309<br>