@@ -121,3 +121,45 @@ def test_graph_load_all() -> None:
121121 uri = Path (get_data ("testdata/js-expr-req-wf.cwl" )).resolve ().as_uri ()
122122 cwl_objs = load_document_by_uri (uri , load_all = True )
123123 assert len (cwl_objs ) == 2
124+
125+
126+ def test_map_ordering_v1_0 () -> None :
127+ """Confirm that ID map entries are not sorted during parsing, CWL v1.0."""
128+ uri = Path (get_data ("testdata/map-ordering-v1_0.cwl" )).resolve ().as_uri ()
129+ cwl_obj = load_document_by_uri (uri )
130+ assert cwl_obj .inputs [0 ].id == f"{ uri } #09first_input"
131+ assert cwl_obj .inputs [1 ].id == f"{ uri } #05second_input"
132+ assert cwl_obj .inputs [2 ].id == f"{ uri } #01third_input"
133+ assert cwl_obj .steps [0 ].id == f"{ uri } #zz_step_one"
134+ assert cwl_obj .steps [1 ].id == f"{ uri } #00_step_two"
135+ assert cwl_obj .outputs [0 ].id == f"{ uri } #zz_first_output"
136+ assert cwl_obj .outputs [1 ].id == f"{ uri } #ll_second_output"
137+ assert cwl_obj .outputs [2 ].id == f"{ uri } #aa_third_output"
138+
139+
140+ def test_map_ordering_v1_1 () -> None :
141+ """Confirm that ID map entries are not sorted during parsing, CWL v1.1."""
142+ uri = Path (get_data ("testdata/map-ordering-v1_1.cwl" )).resolve ().as_uri ()
143+ cwl_obj = load_document_by_uri (uri )
144+ assert cwl_obj .inputs [0 ].id == f"{ uri } #09first_input"
145+ assert cwl_obj .inputs [1 ].id == f"{ uri } #05second_input"
146+ assert cwl_obj .inputs [2 ].id == f"{ uri } #01third_input"
147+ assert cwl_obj .steps [0 ].id == f"{ uri } #zz_step_one"
148+ assert cwl_obj .steps [1 ].id == f"{ uri } #00_step_two"
149+ assert cwl_obj .outputs [0 ].id == f"{ uri } #zz_first_output"
150+ assert cwl_obj .outputs [1 ].id == f"{ uri } #ll_second_output"
151+ assert cwl_obj .outputs [2 ].id == f"{ uri } #aa_third_output"
152+
153+
154+ def test_map_ordering_v1_2 () -> None :
155+ """Confirm that ID map entries are not sorted during parsing, CWL v1.2."""
156+ uri = Path (get_data ("testdata/map-ordering-v1_2.cwl" )).resolve ().as_uri ()
157+ cwl_obj = load_document_by_uri (uri )
158+ assert cwl_obj .inputs [0 ].id == f"{ uri } #09first_input"
159+ assert cwl_obj .inputs [1 ].id == f"{ uri } #05second_input"
160+ assert cwl_obj .inputs [2 ].id == f"{ uri } #01third_input"
161+ assert cwl_obj .steps [0 ].id == f"{ uri } #zz_step_one"
162+ assert cwl_obj .steps [1 ].id == f"{ uri } #00_step_two"
163+ assert cwl_obj .outputs [0 ].id == f"{ uri } #zz_first_output"
164+ assert cwl_obj .outputs [1 ].id == f"{ uri } #ll_second_output"
165+ assert cwl_obj .outputs [2 ].id == f"{ uri } #aa_third_output"
0 commit comments