def exercise_n_gaussian(): assert xray_scattering.n_gaussian_table_size() == 213 assert xray_scattering.n_gaussian_table_index("H") == 0 assert xray_scattering.n_gaussian_table_index("Pu6+") == 212 for n_terms in [6, 5, 4, 3, 2, 1]: e = xray_scattering.n_gaussian_table_entry(0, n_terms) assert e.label() == "H" g = e.gaussian() assert g.n_terms() == n_terms assert approx_equal(g.at_x(0), 1, eps=0.01 + 1.e-6) assert e.max_stol() > 0 assert e.d_min() > 0 assert e.max_relative_error() > 0 for i_entry in range(xray_scattering.n_gaussian_table_size()): for n_terms in [6, 5, 4, 3, 2, 1]: e = xray_scattering.n_gaussian_table_entry(i_entry, n_terms) assert e.gaussian().n_terms() == n_terms f = xray_scattering.n_gaussian_table_entry(e.label(), n_terms) assert f.label() == e.label() assert f.gaussian().n_terms() == n_terms for d_min in [0, 10]: for max_relative_error in [0, 0.5]: e = xray_scattering.n_gaussian_table_entry( i_entry, d_min, max_relative_error) f = xray_scattering.n_gaussian_table_entry( e.label(), d_min, max_relative_error) assert f.label() == e.label() if (d_min == 0): n_terms = 6 else: n_terms = 1 assert e.gaussian().n_terms() == n_terms assert f.gaussian().n_terms() == n_terms label = "Be" be_max_stols = [] be_max_relative_errors = [] for n_terms in [6, 5, 4, 3, 2, 1]: e = xray_scattering.n_gaussian_table_entry(label, n_terms) be_max_stols.append(e.max_stol()) be_max_relative_errors.append(e.max_relative_error()) for n_terms, stol, max_relative_error in zip([6, 5, 4, 3, 2, 1], be_max_stols, be_max_relative_errors): e = xray_scattering.n_gaussian_table_entry("Be", 1 / (2 * stol) + 1.e-6, max_relative_error + 1.e-6) assert e.gaussian().n_terms() == n_terms assert approx_equal(e.max_stol(), stol) if (n_terms < 6): e = xray_scattering.n_gaussian_table_entry( "Be", 1 / (2 * stol) - 1.e-6, max(be_max_relative_errors) + 1.e-6) assert e.gaussian().n_terms() == min(n_terms + 1, 6) assert be_max_relative_errors[1] > be_max_relative_errors[2]
def exercise_n_gaussian(): assert xray_scattering.n_gaussian_table_size() == 213 assert xray_scattering.n_gaussian_table_index("H") == 0 assert xray_scattering.n_gaussian_table_index("Pu6+") == 212 for n_terms in [6,5,4,3,2,1]: e = xray_scattering.n_gaussian_table_entry(0, n_terms) assert e.label() == "H" g = e.gaussian() assert g.n_terms() == n_terms assert approx_equal(g.at_x(0), 1, eps=0.01+1.e-6) assert e.max_stol() > 0 assert e.d_min() > 0 assert e.max_relative_error() > 0 for i_entry in xrange(xray_scattering.n_gaussian_table_size()): for n_terms in [6,5,4,3,2,1]: e = xray_scattering.n_gaussian_table_entry(i_entry, n_terms) assert e.gaussian().n_terms() == n_terms f = xray_scattering.n_gaussian_table_entry(e.label(), n_terms) assert f.label() == e.label() assert f.gaussian().n_terms() == n_terms for d_min in [0,10]: for max_relative_error in [0,0.5]: e = xray_scattering.n_gaussian_table_entry( i_entry, d_min, max_relative_error) f = xray_scattering.n_gaussian_table_entry( e.label(), d_min, max_relative_error) assert f.label() == e.label() if (d_min == 0): n_terms = 6 else: n_terms = 1 assert e.gaussian().n_terms() == n_terms assert f.gaussian().n_terms() == n_terms label = "Be" be_max_stols = [] be_max_relative_errors = [] for n_terms in [6,5,4,3,2,1]: e = xray_scattering.n_gaussian_table_entry(label, n_terms) be_max_stols.append(e.max_stol()) be_max_relative_errors.append(e.max_relative_error()) for n_terms,stol,max_relative_error in zip([6,5,4,3,2,1], be_max_stols, be_max_relative_errors): e = xray_scattering.n_gaussian_table_entry( "Be", 1/(2*stol)+1.e-6, max_relative_error+1.e-6) assert e.gaussian().n_terms() == n_terms assert approx_equal(e.max_stol(), stol) if (n_terms < 6): e = xray_scattering.n_gaussian_table_entry( "Be", 1/(2*stol)-1.e-6, max(be_max_relative_errors)+1.e-6) assert e.gaussian().n_terms() == min(n_terms+1, 6) assert be_max_relative_errors[1] > be_max_relative_errors[2]
def ensure_common_symbols(): lbl_it = [] for e in xray_scattering.it1992_iterator(): lbl_it.append(e.label()) lbl_it.sort() lbl_wk = [] for e in xray_scattering.wk1995_iterator(): lbl_wk.append(e.label()) lbl_wk.sort() assert lbl_wk == lbl_it lbl_ng = [] for i_entry in xrange(xray_scattering.n_gaussian_table_size()): lbl_ng.append(xray_scattering.n_gaussian_table_entry(i_entry, 6).label()) lbl_ng.sort() assert lbl_ng == lbl_it # for label in xray_scattering.standard_labels_list(): it = xray_scattering.it1992(label, True).fetch() wk = xray_scattering.wk1995(label, True).fetch() ng = xray_scattering.n_gaussian_table_entry(label, 0, 0).gaussian() assert approx_equal(wk.at_stol(0)/it.at_stol(0), 1, 5.e-3)
def ensure_common_symbols(): lbl_it = [] for e in xray_scattering.it1992_iterator(): lbl_it.append(e.label()) lbl_it.sort() lbl_wk = [] for e in xray_scattering.wk1995_iterator(): lbl_wk.append(e.label()) lbl_wk.sort() assert lbl_wk == lbl_it lbl_ng = [] for i_entry in range(xray_scattering.n_gaussian_table_size()): lbl_ng.append( xray_scattering.n_gaussian_table_entry(i_entry, 6).label()) lbl_ng.sort() assert lbl_ng == lbl_it # for label in xray_scattering.standard_labels_list(): it = xray_scattering.it1992(label, True).fetch() wk = xray_scattering.wk1995(label, True).fetch() ng = xray_scattering.n_gaussian_table_entry(label, 0, 0).gaussian() assert approx_equal(wk.at_stol(0) / it.at_stol(0), 1, 5.e-3)