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.
Description
This fixes a bug described in #3002 where hexagonal lattices don't round trip in and out of XML correctly. A break condition in
HexagonalLattice.from_xml_element
was occurring before the index into the flat array of universe IDs is incremented, causing the next universe ID used for the second axial to be the last universe from the first layer. The universes in the resultingHexagonalLattice
object are scrambled. This is a silent bug unless one of the universe IDs is omitted from the new lattice entirely in which case it's possible (but not guaranteed) that the abandoned universe will be read in later as part of the cell parsing and treated as the root universe of the geometry.I've added a test to check that the universes of a multi-layer hex lattice are roundtripped correctly both: a) when the universes in each layer are the same and b) when the universes for each lattice cell are unique.
Fixes #3002
Checklist
I have made corresponding changes to the documentation (if applicable)