I have set up the infrastructure to build a test executable, and added a simple test as example.
Also, to make it easier to add tests, I have extracted and exported the simple maeparser Block to sketcherMinimizerMolecule parser that is used to read the templates used the minimizer.
When I added the test, I found a precision/rounding issue that caused some setups to produce very different results than others. It all started with a minimal difference in the score produced by sketcherMinimizer::testAlignment(), which caused an extra rotation inversion. I patched this adding some rounding to improve reproducibility of the results.
As a side node, I have noticed a great deal of arguments passed by value; it might be worth taking a look at them and turn them into references.
I have set up the infrastructure to build a test executable, and added a simple test as example.
Also, to make it easier to add tests, I have extracted and exported the simple maeparser
Block
tosketcherMinimizerMolecule
parser that is used to read the templates used the minimizer.When I added the test, I found a precision/rounding issue that caused some setups to produce very different results than others. It all started with a minimal difference in the score produced by
sketcherMinimizer::testAlignment()
, which caused an extra rotation inversion. I patched this adding some rounding to improve reproducibility of the results.As a side node, I have noticed a great deal of arguments passed by value; it might be worth taking a look at them and turn them into references.