diff --git a/libtbx/test_utils/__init__.py b/libtbx/test_utils/__init__.py index 4d30be6d03..91743611ef 100644 --- a/libtbx/test_utils/__init__.py +++ b/libtbx/test_utils/__init__.py @@ -913,6 +913,35 @@ def exercise(): assert precision_approx_equal(0.799999,0.800004,precision=18)==False print("OK") +def iterate_tests_without_and_with_mmCIF_conversion(): + """ Return a simple iterator that first does nothing and returns False, + then converts all pdb_str_xxxx locals to mmCIF-only format + and prints a notice and returns True. + + Behavior can be modified by specifying "skip_mmcif" or "mmcif_only" + in sys.argv or by setting the value of the environmental + variable REGRESSION_SKIP_CIF ( mmcif_only, skip_mmcif, + blank or missing is run both) + """ + skip_string = os.environ.get("REGRESSION_SKIP_CIF",None) + if skip_string is None: + if 'mmcif_only' in sys.argv: + skip_string = 'mmcif_only' + elif 'skip_mmcif' in sys.argv: + skip_string = 'skip_mmcif' + + if skip_string in [None, '']: + run_list = [False, True] + elif skip_string == 'mmcif_only': + run_list = [True] + elif skip_string == 'skip_mmcif': + run_list = [False] + else: + raise Sorry( + "Unrecognized value of REGRESSION_SKIP_CIF: '%s'" %(skip_string)) + + return run_list + def convert_pdb_to_cif_for_pdb_str(locals, chain_addition = "ZXLONG", key_str="pdb_str", hetatm_name_addition = "ZY", print_new_string = True): # Converts all the strings that start with "pdb_str" from PDB to mmcif diff --git a/mmtbx/regression/tst_minimize_chain.py b/mmtbx/regression/tst_minimize_chain.py index ffbe511d9b..16e224db70 100644 --- a/mmtbx/regression/tst_minimize_chain.py +++ b/mmtbx/regression/tst_minimize_chain.py @@ -636,32 +636,35 @@ def tst_02(args,prefix=None): return rmsd if (__name__ == "__main__"): - for mmcif in [False, True]: + t0=time.time() + from libtbx.test_utils import iterate_tests_without_and_with_mmCIF_conversion + for mmcif in iterate_tests_without_and_with_mmCIF_conversion(): if mmcif: from libtbx.test_utils import convert_pdb_to_cif_for_pdb_str convert_pdb_to_cif_for_pdb_str(locals()) print(80*"-") print("RERUNNING WITH MMCIF") print(80*"-") - t0=time.time() + print("\nRunning merge_models alone") + t0a=time.time() rmsd=tst_01() - print("Time: %6.4f"%(time.time()-t0)) + print("Time: %6.4f"%(time.time()-t0a)) print("OK") args=["number_of_build_cycles=2","number_of_macro_cycles=1","number_of_trials=2","random_seed=77141"] - t0=time.time() + t0a=time.time() print("Running standard minimize_chain") extra_args=['merge_models=False','pdb_out=std.pdb'] rmsd=tst_02(args+extra_args,prefix='tst_02') - print("Time: %6.4f"%(time.time()-t0)) - print("OK") print("RMSD %7.2f "%rmsd) + print("Time: %6.4f"%(time.time()-t0a)) - t0=time.time() + t0a=time.time() print("\nRunning standard minimize_chain plus merge_models") extra_args=['merge_models=True','pdb_out=merged.pdb'] rmsd=tst_02(args+extra_args,prefix='tst_03') - print("Time: %6.4f"%(time.time()-t0)) - print("OK") print("RMSD %7.2f "%rmsd) + print("Time: %6.4f"%(time.time()-t0a)) + print("Total Time: %6.4f"%(time.time()-t0)) + print("OK")