Skip to content

Commit dcc354c

Browse files
author
John Halloran
committed
style: add README to sNMF test
1 parent 29a922c commit dcc354c

File tree

6 files changed

+22
-1
lines changed

6 files changed

+22
-1
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
This test is a whole-program test of the SNMF Optimizer. It runs the optimization on known data with fixed, trusted settings, then asserts
2+
whether the objective function is below a certain value after exactly a certain number of iterations.
3+
It is a blunt-force instrument that can tell if a PR has completely broken things, but it will not catch regressions, and its method
4+
of using objective function only can inadverdently validate a degenerate result. Use with caution.
5+
6+
This test uses data published in:
7+
Stretched Non-negative Matrix Factorization[J].
8+
Section 5.4 XRD
9+
Tab. 7, Fig. 8 & 9
10+
Gu R, Rakita Y, Lan L, et al.
11+
Stretched Non-negative Matrix Factorization[J].
12+
arXiv preprint arXiv:2311.15173, 2023.
13+
and later republished as:
14+
Gu, R., Rakita, Y., Lan, L. et al. Stretched non-negative matrix factorization.
15+
npj Comput Mater 10, 193 (2024). https://doi.org/10.1038/s41524-024-01377-5
16+
Data description:
17+
"A stoichiometric mixture of 2:1 YOCl (>98% tetragonal phase) and MgMn2O4 (spinel phase) was uniformly mixed and sealed in a quartz capillary. It was then heated in a gradient furnance, meaning that each location on the quartz tube had a different temperature31. The absolute temperatures at each point along the sample were calibrated from the lattice expansion of a known calibration material, Ni. The data went from a low temperature of 368∘C to a highest temperature of 668∘C with a total of 20 individual temperature points. Using ‘pyFAI’32, the collected 2D diffraction patterns were then cleaned by masking the beam-stop and over-bright/dead pixels, followed by an azimuthal integration to gain 1D PXRD patterns. The 1D PXRD data was then used as inputs to the different NMF algorithms."
18+
The data was originally sourced from:
19+
O’Nolan D, Huang G, Kamm GE, et al (2020)
20+
A thermal-gradient approach to variable-temperature measurements resolved in space.
21+
Journal of Applied Crystallography 53(3):662–670.
File renamed without changes.
File renamed without changes.

tests/test_snmf_optimizer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from diffpy.snmf.snmf_class import SNMFOptimizer
77

8-
DATA_DIR = Path(__file__).parent / "inputs"
8+
DATA_DIR = Path(__file__).parent / "inputs/test_snmf_optimizer"
99

1010
# Skip the test entirely if any inputs file is missing
1111
_required = [

0 commit comments

Comments
 (0)