Repository navigation
test: retire the apps-parity dumps, name tools, fixtures and tests by subject - #35
Merged
Merged
Conversation
Comments in DiffractoCore cited registration sections, review rounds and work sessions that are not part of this repository. They now say what the code does, or name the module that does it. Comment-only change. Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment-only change in DiffractoScattering: registration sections and review rounds removed, "slice 1" named as DiffractoCore. Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment-only change in DiffractoGeometry: registration sections, review rounds, finding numbers and work-session names removed; "slice 1/2/3b" named as DiffractoCore, DiffractoScattering or the file that does it; "the owner" reworded. Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment-only change in DiffractoOrientation: registration sections, roadmap task numbers and the study step removed. Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment, print and test-name text in DiffractoCoreTests: registration sections, review rounds, tiers and work-session names removed; a missing mutation script no longer cited; "registered" values renamed expected or documented. The D17 tolerance rule is now described in words. Also two leftover registration notes in DiffractoGeometry and macTEM's ADR numbers named as macTEM's. No assertion changes. Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
…repo Comment, MARK and test-name text in DiffractoGeometryTests and DiffractoScatteringTests: registration sections, the old roadmap, review rounds and finding numbers, tiers and missing mutation scripts removed; the archived camera-length plan no longer cited; "registered" values renamed documented, quoted or predicted; "the owner's data" is the maintainer's. No assertion changes. Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment, suite-name and known-issue text in DiffractoOrientationTests, DiffractoKitParityTests and DiffractoKitTestSupport: registration sections, amendments, gates and work-session names removed or named by subject; "registered" values renamed stated, documented or predicted. The apps-parity tests are left as they are: #18 retires them. No assertion changes. Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Pin generators and tools READMEs: registration sections, the private design note, the old roadmap, review rounds and the missing mutation scripts (tools/kit-0.0.4/mutants-*.py, tools/slice-3b/mutants.py, tools/kit-0.2.0/mutants-policy.py) no longer cited; the mutation results stay as measured facts. Package.swift no longer names the missing tools/test.sh. Only comments, docstrings and README text change: string literals the generators write into fixtures are left as they are, so a regenerated fixture stays byte-identical. Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
…reader status.md is one screen without test counts, open-items.md one plain list (the venv note moves to CONTRIBUTING.md, the app-adoption note is added), parity.md and benchmarks.md drop references to material outside the repo, and a short public ROADMAP.md names the items parity.md cites. Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
macTEM's public history starts at v1.0.0, so its commits a58c84c and 9482831 cannot be found. NOTICE, the source comments and the tools now cite "macTEM before v1.0.0 (history squashed)". NOTICE gains an orix entry (the oracle for P26 and P36, no code copied into the library) and credits the Materials Project fixtures under CC BY 4.0. Part of #17 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
README: install pin 0.10.0, CI and docs badges, the Metal path and the ImagoKit/Accelerate dependency, the module table up to 0.10.0 and two Known limits lines reworded. CITATION gains version, date-released and orix, and loses the ORCID TODO. The fixture README lists the orix misorientation pins and credits the Materials Project files; the stray .keep is gone. Part of #17 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
…ing) Part of #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Part of #17 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
# Conflicts: # CITATION.cff # NOTICE # Sources/DiffractoCore/ReflectionList.swift # Sources/DiffractoGeometry/ElectronWavelength.swift # Sources/DiffractoGeometry/RingCalibration.swift # Sources/DiffractoGeometry/RingIndexing.swift # Tests/DiffractoGeometryTests/RingCalibrationTests.swift # Tests/DiffractoGeometryTests/RingFitCalibrationTests.swift # Tests/DiffractoGeometryTests/RingIndexingTests.swift # Tests/DiffractoKitParityTests/Geometry/RingCalibrationPinsTests.swift # Tests/Fixtures/README.md # tools/slice-3/README.md
slice-3b-sweep.json now records each ring's plant (size, radius, eps, theta, gap, seed) and fit1D's start and annulus, and tools/slice-3b/sweep.py renders the 20 rings itself (a line-for-line Python port of EllipsePlant with no noise; every ring's FNV-1a hash equals the Swift renderer's). Reason: the sweep test read its plants from slice-3b-apps.json, the apps-parity dump that #18 retires. No number moved: every optimum, hash and count is byte-identical; only the plant fields were added and the dump index dropped. Part of #18. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deletes slice-2-apps.json, slice-3b-apps.json, slice-3b-apps-onone.json and slice-4-apps.json (about 15 MB) with their
tests (ScatteringPinsTests' testAppsBitForBit and the beta'' site-list test, EllipseAppsParityTests, Slice4AppsParityTests)
and generators (tools/slice-{2,3b,4}/apps-parity). Reason: they were bit-identity dumps of the apps' pre-port code
(mac4DSTEM 7d6fdbd1), holding the kit to frozen legacy output rather than to a reference, and regenerating them needed an
old app checkout. The Python pins (P4 to P6, P11, P14, P15) and the planted-truth tests hold the same functions.
docs/parity.md marks P7, P10 and P16 retired; the fixtures README drops the four rows (and gains the missing
orix-misorientation row).
Part of #18.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One move, no number changed: every fixture is byte-identical under its new name.
- Generators: tools/slice-1, slice-1b, slice-2, slice-3, slice-3b, slice-4, kit-0.0.4 and mactem-pieces become
tools/pins/{cells, conventional-cell, structure-factors, ring-calibration, ring-indexing, ellipse, phase-vectors,
ring-display}; the subject-named orix, symmetry (now orientation-symmetry), presets, mp-import, cif-symmetry and
acom-matcher move under tools/pins too, so every fixture generator lives in one place. Each script's root path is one
level deeper; every resolved path was checked.
- Fixtures: slice-*-pins.json become <reference>-<subject>-pins.json (pymatgen-cells, spglib-conventional-cell,
numpy-structure-factor, numpy-ring-calibration, numpy-ring-indexing, scipy-ellipse-sweep, py4dstem-phase-vector); the
review CIFs refuter_* are named by what they hold (magnesium_P1_origin_shifted.cif and so on). The fixture folders and
FixtureDirs are unchanged.
- Tests: Slice1bSupport, KitAsks0100Tests, ToleranceFixesTests, ACOMKitAsksTests, PhaseVectorReviewFindingTests,
RingFitAmendmentTests, PolicyFixesTests and Slice4PinsTests (with its G2 to G4 suites) are named after the API they
test; consumer-check's Geometry004, MacTEMPieces and Release0100 files after their subject.
- docs/parity.md, the fixtures README and the "Generated by" lines of three generated sources follow.
Part of #18.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tools/readme-consumer's target is now a symbolic link to Examples/diffracto-example, so the README's program exists once in the repository (the README block aside) instead of three byte-identical times. SwiftPM refuses a target `path:` outside the package root, so the link stands in for it; run.sh checks the link and compares the example with the README, and the consumer package still builds from outside the kit against the public API only. Part of #18. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
testRinglessFitOnARealMeanPatternFallsBackToTheConic was .disabled; it is now enabled when its file exists under $MACEM_DATA (default ../data beside the checkout) and skipped with a reason otherwise, the kit's rule for real-data tests. The file is still absent everywhere (its manifest line is pending), so CI skips it as before. Part of #18. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e per oracle
CONTRIBUTING.md describes the three venvs (pymatgen with spglib, orix, py4DSTEM) and how to build them from a fresh
clone with tools/pins/requirements/{pymatgen,orix,py4dstem}.txt, which pin the versions the committed fixtures were
made with. The pymatgen generators now name a venv called pymatgen instead of the orix one they ran in.
Part of #18.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reason: the fixtures recorded pymatgen-core 2026.9.23 (an earlier venv) while the reference environment holds 2026.10.16; every fixture that records a pymatgen-core version now records 2026.10.16. Regenerated with tools/pins: pymatgen-cells, spglib-conventional-cell, tetragonal, numpy-structure-factor, mp-import, presets, py4dstem-phase-vector, symmetry and py4dstem-family-real pins. No number moved: a structural comparison of each old and new file finds only the version, Python, timestamp and (phase-vector pins) generator-path fields changed. The generators' version asserts and the tests that read the recorded versions follow (pymatgen-core 2026.10.16, Python 3.12, and NumPy 2.5.4 / SciPy 1.18.1 in the py4DSTEM venv). Part of #18. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Part of #18. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…links and 0.0.3 Every version heading is `## [x.y.z](compare link) (date)`, the form release-please writes from 0.11.0 on, so the file reads as one list. 0.3.0, 0.1.1 and 0.1.0 get their tag dates, 0.0.3 gets a pre-release entry, and the "archived" lines and internal ask and task numbers are gone. The CI tag check's regex already reads both heading forms (`^## \[?v?x.y.z`), so ci.yml is unchanged; it reads 0.10.0 here. Done: the CHANGELOG bullet of #17. Next: Paul merges #28. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both lines carry an x-release-please-version annotation and the files are release-please extra-files, so the Release PR moves them with the manifest. CITATION's date-released stays a hand edit in the Release PR. Done: the CITATION 'bumped with every tag' bullet of #17. Next: Paul merges #28. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-subject Resolves the conflicts between the two PRs once: the renamed tools keep #28's provenance wording ("macTEM before v1.0.0 (history squashed)"), the fixture README keeps the renamed table with #28's Materials Project credit, and the two old slice READMEs stay deleted (their text lives in tools/pins/ring-calibration and tools/pins/ring-indexing). NOTICE and README now name the tools/pins paths and pymatgen-core 2026.10.16. Done: #18's NOTICE and README follow-ups. Next: Paul merges #28, then this. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
main's #28 is already in this branch; its later line-wrap edits are superseded by the renamed files here, and the retired tools/slice-3 and slice-3b READMEs stay deleted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkKZEWLQDNR7GTJSa5geSZ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Paul · project thread
Fixes #18
Merge #28 first. This branch has #28's branch merged in, so the conflicts between the two PRs are resolved here once; after #28 is squash-merged, merging
mainback in leaves only this PR's changes.Fixture and tool cleanup for #18 (with #10 folded in). One commit per step; no number moved anywhere.
slice-2-apps.json,slice-3b-apps.json,slice-3b-apps-onone.json,slice-4-apps.json(about 15 MB),Slice4AppsParityTests,EllipseAppsParityTests,ScatteringPinsTests.testAppsBitForBit(and the beta'' site-list test) andtools/slice-*/apps-parity/.docs/parity.mdmarks P7, P10 and P16 retired. The SciPy sweep test read its plants from the 3b dump, so first the sweep fixture got its own plant and start fields, andsweep.pynow renders the rings itself. The Python port hashes equal to the Swift renderer, and every optimum is byte-identical.tools/pins/<subject>/(cells, conventional-cell, structure-factors, ring-calibration, ring-indexing, ellipse, phase-vectors, ring-display, plus the already subject-named orix, orientation-symmetry, presets, mp-import, cif-symmetry, acom-matcher). Fixtures are named<reference>-<subject>-pins.json, therefuter_*CIFs by what they hold, and the eight session-named test files after their API. consumer-check files are named by subject too. The renamed fixtures are byte-identical, and every script's resolved path was checked.tools/readme-consumer/Sources/readme-consumeris a symlink toExamples/diffracto-example, because SwiftPM refuses a targetpath:outside the package root.run.shchecks the link, and it passes.$MACEM_DATAand is skipped with a reason otherwise.CONTRIBUTING.mddescribes it once, withtools/pins/requirements/{pymatgen,orix,py4dstem}.txt. The pymatgen generators name apymatgenvenv, not theorixone.Local:
swift test -c release(fast and parity targets) green,tools/consumer-check/run.shandtools/readme-consumer/run.shpass, SwiftLint and SwiftFormat clean.Follow-ups done in the last round (
mainand #28 merged in):NOTICEnamestools/pins/structure-factors/fetch-table.sh,tools/pins/cells/pins.pywithpymatgen-cells-pins.json,tools/pins/orientation-symmetry/pins.pyandtools/pins/orix/*-pins.py, and pymatgen-core 2026.10.16.README.mdpoints attools/pins/<subject>/andCONTRIBUTING.mdinstead oftools/*/pins.py.tools/pins/structure-factors/pins.pystill namea58c84cbecause they are fixture bytes.fetch-table.shdoes not call a macTEM script: line 2 is a provenance comment.test/refactor/docsentries, so there is no visible line for "fixtures renamed, no number moved".../References/python/pymatgen: build it fromtools/pins/requirements/pymatgen.txt, or link it to theorixvenv, which holds the same packages.Local after the merges:
swift test -c release --parallel --skip DiffractoKitParityTestsgreen (170 Swift Testing tests plus the XCTest cases).🤖 Generated with Claude Code