xraypy / feff85exafs

Feff8L: Open Source theoretical EXAFS fitting standards
Other
15 stars 7 forks source link

first draft of unit testing frame work #13

Closed bruceravel closed 10 years ago

bruceravel commented 10 years ago

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.