Skip to content

Commit

Permalink
fix: 'AwkwardForth testing E' should use the last fields/formats,…
Browse files Browse the repository at this point in the history
… not first (#1224)

* fix: 'AwkwardForth testing E' should use the last fields/formats, not first

* added a test using @AndrewEdmonds11's file
  • Loading branch information
jpivarski committed May 24, 2024
1 parent d38f72a commit 734700e
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/uproot/streamers.py
Original file line number Diff line number Diff line change
Expand Up @@ -999,14 +999,14 @@ def class_code(
else:
# AwkwardForth testing E: test_0637's 01,02,05,08,09,11,12,13,15,16,29,35,39,45,46,47,49,50,56
read_members.append(" if forth_obj is not None:")
for i in range(len(formats[0])):
for i in range(len(formats[-1])):
read_members.extend(
[
" key = key_number ; key_number += 1",
' form_key = f"node{key}-data"',
f' nested_forth_stash = af.Node(f"node{{key}}", field_name={fields[0][i]!r}, form_details={{ "class": "NumpyArray", "primitive": "{af.struct_to_dtype_name[formats[0][i]]}", "inner_shape": [], "parameters": {{}}, "form_key": f"node{{key}}"}})',
f' nested_forth_stash.header_code.append(f"output {{form_key}} {af.struct_to_dtype_name[formats[0][i]]}\\n")',
f' nested_forth_stash.pre_code.append(f"stream !{formats[0][i]}-> {{form_key}}\\n")',
f' nested_forth_stash = af.Node(f"node{{key}}", field_name={fields[-1][i]!r}, form_details={{ "class": "NumpyArray", "primitive": "{af.struct_to_dtype_name[formats[-1][i]]}", "inner_shape": [], "parameters": {{}}, "form_key": f"node{{key}}"}})',
f' nested_forth_stash.header_code.append(f"output {{form_key}} {af.struct_to_dtype_name[formats[-1][i]]}\\n")',
f' nested_forth_stash.pre_code.append(f"stream !{formats[-1][i]}-> {{form_key}}\\n")',
" forth_obj.add_node(nested_forth_stash)",
]
)
Expand Down
22 changes: 22 additions & 0 deletions tests/test_1221_AwkwardForth_bug.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# BSD 3-Clause License; see https://github.com/scikit-hep/uproot5/blob/main/LICENSE

import pytest
import uproot
import skhep_testdata


def test():
with uproot.open(skhep_testdata.data_path("uproot-issue-1221.root")) as file:
record = file["TrkAna"]["trkana"]["demtsh"].array()[-1, -1, -1]
assert record.tolist() == {
"wdot": -0.6311486959457397,
"dhit": True,
"poca": {
"fCoordinates": {
"fX": -526.5504760742188,
"fY": -195.0541534423828,
"fZ": 1338.90771484375,
}
},
"dactive": True,
}

0 comments on commit 734700e

Please sign in to comment.