xraypy/feff85exafs — pull request #13 by bruceravel (2014-08-19 20:20:08+00:00)
Title: first draft of unit testing frame work

This appears to be an ENORMOUS pull request. While it is true that it introduces a lot of files, it involves relatively little code.

The vast majority of the files included in the PR are the output of feff runs on 6 sample materials. For each material, I ran Feff with and without SCF. The idea is that these files constitute the baseline calculation(s) using feff85exafs as it was delivered to us.

A unit test, then, compares the result of a fresh Feff calculation with content from the baseline calculations. Currently, these comparisons are pretty simple -- plots are made of columns from the arrays in Larch's `feffpath._feffdat` group, one for the baseline, one for the fresh calculation. A simple R-factor is also calculated. Currently, since Feff has not yet been hacked up, these R-factors are all 0 and the lines overplot exactly.

The unit testing framework is implemented as a plugin, see `f85ut.py`. See `testcopper.lar` for an example of its use.

The todo list is long-ish. See the comments near the top of `f85ut.py`.

The README in the `t/materials/` folder explains what everything is.

Note that I have used termcolor in `f85ut.py`, which is among larch's list of recommended modules. For a templating application, I have used pystache because it was readily available and a clean templating solution. I could easily be convinced to use string.Template from the standard library instead.

The unit testing currently fails on the bromoadamantane example. I'm looking into it, but I wanted to get this PR made before too long.