Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 45 additions & 3 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ is the committed fixture pymatgen-cells-pins.json. The Laue orbit and the absenc
computed from pymatgen's operations in NumPy.

pymatgen - https://github.com/materialsproject/pymatgen (MIT License)
Copyright (c) 2011-2026 The Materials Project
Copyright (c) 2011-2012 MIT & The Regents of the University of
California, through Lawrence Berkeley National Laboratory
spglib - https://github.com/spglib/spglib (BSD-3-Clause)

================================================================================
Expand Down Expand Up @@ -124,8 +125,8 @@ P36); their output is committed as Tests/DiffractoOrientationTests/Fixtures/
orix-*-pins.json. No orix code is copied into the library.

orix - https://github.com/pyxem/orix
Copyright (C) The pyxem developers
Licensed under the GNU General Public License v3.0
Copyright 2018-2026 the orix developers
Licensed under the GNU General Public License v3.0 or later

================================================================================
Materials Project (test fixtures)
Expand All @@ -143,3 +144,44 @@ response; the other two were written by hand in its format.
A. Jain et al., "Commentary: The Materials Project: A materials genome
approach to accelerating materials innovation", APL Materials 1, 011002
(2013), doi:10.1063/1.4812323

================================================================================
Test fixtures: every source and its licence
================================================================================

Tests/Fixtures/README.md lists each committed fixture file. By source:

CIF files (Tests/DiffractoCoreTests/Fixtures/*.cif). None is a copy of an
entry in a crystallographic database: no file comes from the Crystallography
Open Database (COD), the American Mineralogist Crystal Structure Database
(AMCSD) or ICSD. Each file says where it comes from in its first comment line:
- written in the tests of mac4DSTEM 7448401b (GPL-3.0) and copied with that
line, some completed or reduced as the comment says;
- written for this kit as regression cases (GPL-3.0-only, this licence);
- corundum_P1_rhombohedral.cif and magnesium_P63mmc_origin_shifted_loop.cif
were written with pymatgen CifWriter (MIT); the output of a tool carries no
licence of the tool.
Lattice parameters and atomic coordinates in them are published measurements,
cited as facts. 2H-WS2 (ws2_2H.cif) takes its cell and z(S) from W. J.
Schutte, J. L. de Boer and F. Jellinek, J. Solid State Chem. 70, 207-209
(1987). COD entry 5910003 holds the same structure; COD dedicates its data to
the public domain under CC0 (https://www.crystallography.net/cod/), but the
fixture is written by hand and is not that file.

Oracle outputs (the *-pins.json files). These are numbers computed by the
scripts under tools/pins/, which call the reference packages below; no source
code or test data of those packages is copied into them:
- pymatgen 2026.9.24 / pymatgen-core 2026.10.16 (MIT) and spglib 2.8.0
(BSD-3-Clause): cells, symmetry operations, conventional cells, presets,
the Materials Project decoder and the X-ray cross-check;
- orix 0.15.0 (GPL-3.0-or-later): orix-*-pins.json and the orix part of
trigonal-pins.json and symmetry-pins.json;
- py4DSTEM f050d207 (GPL-3.0): py4dstem-*-pins.json, acom-matcher-pins.json
and the py4DSTEM part of the orientation-symmetry pins;
- NumPy and SciPy (BSD-3-Clause), or plain Python: the ring calibration,
ring indexing, ellipse, ring-overlay and indexing-display pins, and the
structure-factor phase sum.
No fixture is taken from the test data of pymatgen, orix or py4DSTEM.

Materials Project records (mp-import/input-*.json): CC BY 4.0, credited in
the section above.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,8 +243,9 @@ the xy plane, reciprocal vectors without 2 pi, the per-axis index bound. The ele
`DiffractoScattering` is py4DSTEM's (Lobato and Van Dyck 2014), also GPL-3.0. **pymatgen** (MIT) is an oracle: cells,
symmetry and d-spacings are checked against it, and no pymatgen code is copied or ported; a part ported from pymatgen in the
future would be MIT on its own, but one package with any GPL part is GPL, so the whole is GPL-3.0 and an app built on it must
be GPL-compatible. The CIF fixtures under `Tests/` come from those applications' tests (GPL-3.0) with their provenance in a comment
line; the beta'' cell content (Andersen et al. 1998) is written by a generator into the gitignored `References/`. Per-source notices are in `NOTICE`.
be GPL-compatible. The CIF fixtures under `Tests/` come from those applications' tests (GPL-3.0) or were written for this kit, with
their provenance in a comment line; none is a copy of a COD, AMCSD or ICSD entry. The Materials Project records are CC BY 4.0, and
`Tests/Fixtures/README.md` lists every fixture source with its licence. The beta'' cell content (Andersen et al. 1998) is written by a generator into the gitignored `References/`. Per-source notices are in `NOTICE`.

## Please cite

Expand Down
73 changes: 45 additions & 28 deletions Tests/Fixtures/README.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,70 @@
# Test fixtures

One row per committed fixture file under `Tests/*/Fixtures/`: size, the script under `tools/` that names it (the generator or its
pin script; a few scripts write a whole directory; a script found only by file-name prefix, tool-folder name or test module is marked so), and a note where the origin is not the kit's own pinned reference. 52 files.
pin script; a few scripts write a whole directory; a script found only by file-name prefix, tool-folder name or test module is marked so), and a note where the origin is not the kit's own pinned reference (every CIF says its source). 52 files.

Licence: every fixture is generated from this kit's own code and the pinned Python reference (named in the README) and ships under the kit's GPL-3.0-only licence, except the rows marked *third party*. No fixture is a copy of a real dataset: the committed text fixtures carry no local path or personal name (checked by search), and real datasets are read from `$MACEM_DATA` and never copied into the repo.
Licence: the sources and licences are in the next two sections and in `NOTICE`. The pin JSON files are computed by the scripts under `tools/pins/` and ship under the kit's GPL-3.0-only licence. The CIFs were not generated by those scripts: 16 come from the tests of mac4DSTEM 7448401b (GPL-3.0, same author) and 10 were written for this kit (GPL-3.0-only); the pin scripts only read them. The 3 rows marked *third party* keep their own licence. No fixture is a copy of a real dataset: the committed text fixtures carry no local path or personal name (checked by search), and real datasets are read from `$MACEM_DATA` and never copied into the repo.

## Third party

3 files, listed in the table below with the note *third party*. Keep their licence line when the files move.

## Sources and licences

`NOTICE` names each source with its licence; in short:

| Source | Files | Licence |
|---|---|---|
| Materials Project (recorded API response and two records in its format) | `mp-import/input-*.json` | CC BY 4.0, *third party* |
| Tests of mac4DSTEM 7448401b (the first comment line of each CIF says which) | 16 `*.cif` (note *mac4DSTEM tests*) | GPL-3.0, same author |
| Written for this kit: regression cases and the ideal hcp cell (two regression cases written with pymatgen `CifWriter`) | the other 10 `*.cif` (note *written for this kit*) | GPL-3.0-only |
| Published lattice parameters and coordinates inside the CIFs | `*.cif` | facts, cited in `NOTICE`; no file is a copy of a COD, AMCSD or ICSD entry |
| Outputs of pymatgen (MIT) and spglib (BSD-3-Clause) | cell, symmetry, preset and decoder pins | generated, GPL-3.0-only |
| Outputs of orix 0.15.0 (GPL-3.0-or-later) | `orix-*-pins.json`, parts of `trigonal-pins.json` and `symmetry-pins.json` | generated, GPL-3.0-only |
| Outputs of py4DSTEM f050d207 (GPL-3.0) | `py4dstem-*-pins.json`, `acom-matcher-pins.json` | generated, GPL-3.0-only |
| Outputs of NumPy and SciPy (BSD-3-Clause) or plain Python | ring, ellipse, overlay, display and structure-factor pins | generated, GPL-3.0-only |

No fixture is copied from the test data of pymatgen, orix or py4DSTEM.

## All fixtures

| File | Size | Generated by | Note |
|---|---|---|---|
| `DiffractoCoreTests/Fixtures/alpha_quartz_P1_origin_shifted.cif` | 747 B | review regression CIF, read by `RefuterRegressionTests` | |
| `DiffractoCoreTests/Fixtures/alpha_quartz_P3221.cif` | 924 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | |
| `DiffractoCoreTests/Fixtures/alpha_quartz_P3221_as_seeded.cif` | 712 B | `tools/pins/cells/pins.py` | |
| `DiffractoCoreTests/Fixtures/calcite_R-3c_hex.cif` | 1.4 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | |
| `DiffractoCoreTests/Fixtures/cdi2_P-3m1.cif` | 462 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | |
| `DiffractoCoreTests/Fixtures/alpha_quartz_P1_origin_shifted.cif` | 747 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) |
| `DiffractoCoreTests/Fixtures/alpha_quartz_P3221.cif` | 924 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/alpha_quartz_P3221_as_seeded.cif` | 712 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/calcite_R-3c_hex.cif` | 1.4 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/cdi2_P-3m1.cif` | 462 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/cif-symmetry-pins.json` | 19.4 KB | `tools/pins/cif-symmetry/pins.py` | |
| `DiffractoCoreTests/Fixtures/corundum_P1_rhombohedral.cif` | 1.3 KB | review regression CIF, read by `RefuterRegressionTests` | |
| `DiffractoCoreTests/Fixtures/fluorapatite_P63m.cif` | 781 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | |
| `DiffractoCoreTests/Fixtures/gold_P1.cif` | 396 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | |
| `DiffractoCoreTests/Fixtures/gold_P1_origin_shifted_exact_decimals.cif` | 588 B | review regression CIF, read by `RefuterRegressionTests` | |
| `DiffractoCoreTests/Fixtures/gold_centring_ops.cif` | 440 B | `tools/pins/cells/pins.py` | |
| `DiffractoCoreTests/Fixtures/ideal_hcp_P1.cif` | 504 B | `tools/pins/cells/pins.py` | |
| `DiffractoCoreTests/Fixtures/iron_P1_general_position.cif` | 470 B | review regression CIF, read by `RefuterRegressionTests` | |
| `DiffractoCoreTests/Fixtures/magnesium_P1_origin_shifted.cif` | 529 B | review regression CIF, read by `RefuterRegressionTests` | |
| `DiffractoCoreTests/Fixtures/magnesium_P63mmc.cif` | 401 B | `tools/pins/phase-vectors/pins.py` | |
| `DiffractoCoreTests/Fixtures/magnesium_P63mmc_24ops.cif` | 896 B | `tools/pins/cells/pins.py` | |
| `DiffractoCoreTests/Fixtures/magnesium_P63mmc_origin_shifted_loop.cif` | 1.5 KB | review regression CIF, read by `RefuterRegressionTests` | |
| `DiffractoCoreTests/Fixtures/mixed_centring.cif` | 561 B | review regression CIF, read by `RefuterRegressionTests` | |
| `DiffractoCoreTests/Fixtures/corundum_P1_rhombohedral.cif` | 1.3 KB | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only), with pymatgen `CifWriter` |
| `DiffractoCoreTests/Fixtures/fluorapatite_P63m.cif` | 781 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/gold_P1.cif` | 396 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/gold_P1_origin_shifted_exact_decimals.cif` | 588 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) |
| `DiffractoCoreTests/Fixtures/gold_centring_ops.cif` | 440 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/ideal_hcp_P1.cif` | 504 B | `tools/pins/cells/pins.py` | written for this kit (GPL-3.0-only) |
| `DiffractoCoreTests/Fixtures/iron_P1_general_position.cif` | 470 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) |
| `DiffractoCoreTests/Fixtures/magnesium_P1_origin_shifted.cif` | 529 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) |
| `DiffractoCoreTests/Fixtures/magnesium_P63mmc.cif` | 401 B | `tools/pins/phase-vectors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/magnesium_P63mmc_24ops.cif` | 896 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/magnesium_P63mmc_origin_shifted_loop.cif` | 1.5 KB | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only), with pymatgen `CifWriter` |
| `DiffractoCoreTests/Fixtures/mixed_centring.cif` | 561 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) |
| `DiffractoCoreTests/Fixtures/mp-import/input-aluminium-v3.json` | 1.6 KB | `tools/pins/mp-import/pins.py` | third party: Materials Project data, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), source https://materialsproject.org; credited in `NOTICE` |
| `DiffractoCoreTests/Fixtures/mp-import/input-magnesiumJSON.json` | 1.1 KB | `tools/pins/mp-import/pins.py` | third party: Materials Project data, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), source https://materialsproject.org; credited in `NOTICE` |
| `DiffractoCoreTests/Fixtures/mp-import/input-siliconJSON.json` | 2.9 KB | `tools/pins/mp-import/pins.py` | third party: Materials Project data, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), source https://materialsproject.org; credited in `NOTICE` |
| `DiffractoCoreTests/Fixtures/mp-import/pymatgen-pins.json` | 6.3 KB | `tools/pins/mp-import/pins.py` | |
| `DiffractoCoreTests/Fixtures/polonium_P1_supercell_7x.cif` | 737 B | `tools/pins/conventional-cell/pins.py` | |
| `DiffractoCoreTests/Fixtures/polonium_P1_supercell_7x.cif` | 737 B | `tools/pins/conventional-cell/pins.py` | written for this kit (GPL-3.0-only) |
| `DiffractoCoreTests/Fixtures/presets-pins.json` | 21.1 KB | `tools/pins/presets/pins.py` | |
| `DiffractoCoreTests/Fixtures/pymatgen-cells-pins.json` | 2.7 MB | `tools/pins/cells/pins.py`, `tools/pins/conventional-cell/pins.py` | |
| `DiffractoCoreTests/Fixtures/pyrite_Pa-3.cif` | 1.1 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | |
| `DiffractoCoreTests/Fixtures/pyrite_Pa-3_as_seeded.cif` | 787 B | `tools/pins/cells/pins.py` | |
| `DiffractoCoreTests/Fixtures/rocksalt_Fm-3m_192ops.cif` | 3.5 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | |
| `DiffractoCoreTests/Fixtures/rocksalt_P1_origin_shifted.cif` | 703 B | review regression CIF, read by `RefuterRegressionTests` | |
| `DiffractoCoreTests/Fixtures/silicon_Fd-3m.cif` | 498 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | |
| `DiffractoCoreTests/Fixtures/pyrite_Pa-3.cif` | 1.1 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/pyrite_Pa-3_as_seeded.cif` | 787 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/rocksalt_Fm-3m_192ops.cif` | 3.5 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/rocksalt_P1_origin_shifted.cif` | 703 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) |
| `DiffractoCoreTests/Fixtures/silicon_Fd-3m.cif` | 498 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/spglib-conventional-cell-pins.json` | 2.2 MB | `tools/pins/conventional-cell/pins.py` | |
| `DiffractoCoreTests/Fixtures/tetragonal-pins.json` | 14.3 KB | `tools/pins/cells/tetragonal-pins.py` | |
| `DiffractoCoreTests/Fixtures/tetragonal_a_equals_c.cif` | 387 B | `tools/pins/cells/pins.py` | |
| `DiffractoCoreTests/Fixtures/tetragonal_a_equals_c_4ops.cif` | 623 B | `tools/pins/cells/pins.py` | |
| `DiffractoCoreTests/Fixtures/ws2_2H.cif` | 568 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | |
| `DiffractoCoreTests/Fixtures/tetragonal_a_equals_c.cif` | 387 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/tetragonal_a_equals_c_4ops.cif` | 623 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoCoreTests/Fixtures/ws2_2H.cif` | 568 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line |
| `DiffractoGeometryTests/Fixtures/indexing-display-pins.json` | 2.3 KB | `tools/pins/ring-display/indexing-display-pins.py` | |
| `DiffractoGeometryTests/Fixtures/numpy-ring-calibration-pins.json` | 139.8 KB | `tools/pins/ring-calibration/q-pins.py`, `tools/pins/ring-calibration/ring-pins.py` | |
| `DiffractoGeometryTests/Fixtures/numpy-ring-indexing-pins.json` | 4.7 MB | `tools/pins/ring-indexing/pins.py` | |
Expand Down
Loading