@@ -1275,6 +1275,7 @@ def run_cli_checks(executable: Path) -> int:
12751275 5 ,
12761276 ),
12771277 )
1278+ molecular_hydrogen_graphs = {}
12781279 for (
12791280 name ,
12801281 hydrogen_options ,
@@ -1309,20 +1310,43 @@ def run_cli_checks(executable: Path) -> int:
13091310 "atoms or bonds" ,
13101311 completed ,
13111312 )
1313+ molecular_hydrogen_graphs [tuple (hydrogen_options )] = graph
13121314 scenarios += 1
13131315
1314- native_hydrogen_graph = "native-hydrogens\n 4\n 1 3 2 3 3 4\n H H C C\n 1 1 1\n "
1315- expected_native_graph = None
1316- for name , hydrogen_option in (
1317- ("native-hydrogens-on" , "--remove-hydrogens=1" ),
1318- ("native-hydrogens-off" , "--remove-hydrogens=0" ),
1319- ):
1316+ native_hydrogen_graph = (
1317+ "native-hydrogens\n "
1318+ "6\n "
1319+ "1 3 2 3 3 4 4 5 4 6\n "
1320+ "H H C C H H\n "
1321+ "1 1 1 1 1\n "
1322+ )
1323+ native_hydrogen_cases = (
1324+ ("native-hydrogens-default" , [], ["C" , "C" ], 1 ),
1325+ (
1326+ "native-hydrogens-on" ,
1327+ ["--remove-hydrogens=1" ],
1328+ ["C" , "C" ],
1329+ 1 ,
1330+ ),
1331+ (
1332+ "native-hydrogens-off" ,
1333+ ["--remove-hydrogens=0" ],
1334+ ["H" , "H" , "C" , "C" , "H" , "H" ],
1335+ 5 ,
1336+ ),
1337+ )
1338+ for (
1339+ name ,
1340+ hydrogen_options ,
1341+ expected_colours ,
1342+ expected_edge_count ,
1343+ ) in native_hydrogen_cases :
13201344 case_directory = working_directory / name
13211345 case_directory .mkdir ()
13221346 (case_directory / "input" ).write_text (native_hydrogen_graph )
13231347 completed = run_cli_command (
13241348 executable ,
1325- ["input" , "--pathway=1" , hydrogen_option ],
1349+ ["input" , "--pathway=1" , * hydrogen_options ],
13261350 case_directory ,
13271351 )
13281352 require_cli (
@@ -1338,20 +1362,18 @@ def run_cli_checks(executable: Path) -> int:
13381362 )
13391363 graph = parse_pathway_document (pathway_path )["file_graph" ][0 ]
13401364 require_cli (
1341- graph ["VertexColours" ] == ["H" , "H" , "C" , "C" ]
1342- and len (graph ["Edges" ]) == 3 ,
1343- "--remove-hydrogens should not transform native graph inputs" ,
1365+ graph ["VertexColours" ] == expected_colours
1366+ and len (graph ["Edges" ]) == expected_edge_count ,
1367+ f"native-graph hydrogen scenario { name !r} transformed the "
1368+ "wrong atoms or bonds" ,
1369+ completed ,
1370+ )
1371+ require_cli (
1372+ graph == molecular_hydrogen_graphs [tuple (hydrogen_options )],
1373+ f"native-graph hydrogen scenario { name !r} should match its "
1374+ "MOL equivalent" ,
13441375 completed ,
13451376 )
1346- if expected_native_graph is None :
1347- expected_native_graph = graph
1348- else :
1349- require_cli (
1350- graph == expected_native_graph ,
1351- "native graph output should be identical with hydrogen "
1352- "removal on or off" ,
1353- completed ,
1354- )
13551377 scenarios += 1
13561378
13571379 all_hydrogen_mol = (
0 commit comments