def test_with_old_index_generator(data): from dials.algorithms.spot_prediction import ScanStaticReflectionPredictor from dials.array_family import flex predict = ScanStaticReflectionPredictor(data.experiments[0]) r_old = predict.for_ub_old_index_generator( data.experiments[0].crystal.get_A()) r_new = predict.for_ub(data.experiments[0].crystal.get_A()) index1 = flex.size_t( sorted(range(len(r_old)), key=lambda x: r_old["miller_index"][x])) index2 = flex.size_t( sorted(range(len(r_new)), key=lambda x: r_new["miller_index"][x])) r_old = r_old.select(index1) r_new = r_new.select(index2) assert len(r_old) == len(r_new) for r1, r2 in zip(r_old.rows(), r_new.rows()): assert r1["miller_index"] == r2["miller_index"] assert r1["panel"] == r2["panel"] assert r1["entering"] == r2["entering"] assert all(a == pytest.approx(b, abs=1e-7) for a, b in zip(r1["s1"], r2["s1"])) assert all(a == pytest.approx(b, abs=1e-7) for a, b in zip(r1["xyzcal.px"], r2["xyzcal.px"])) assert all(a == pytest.approx(b, abs=1e-7) for a, b in zip(r1["xyzcal.mm"], r2["xyzcal.mm"]))
def tst_with_old_index_generator(self): from dials.algorithms.spot_prediction import ScanStaticReflectionPredictor from dials.array_family import flex predict = ScanStaticReflectionPredictor(self.experiments[0]) r_old = predict.for_ub_old_index_generator( self.experiments[0].crystal.get_A()) r_new = predict.for_ub(self.experiments[0].crystal.get_A()) index1 = flex.size_t( sorted(range(len(r_old)), key=lambda x: r_old['miller_index'][x])) index2 = flex.size_t( sorted(range(len(r_new)), key=lambda x: r_new['miller_index'][x])) r_old = r_old.select(index1) r_new = r_new.select(index2) assert (len(r_old) == len(r_new)) eps = 1e-7 for r1, r2 in zip(r_old.rows(), r_new.rows()): assert (r1['miller_index'] == r2['miller_index']) assert (r1['panel'] == r2['panel']) assert (r1['entering'] == r2['entering']) assert (all(abs(a - b) < eps for a, b in zip(r1['s1'], r2['s1']))) assert (all( abs(a - b) < eps for a, b in zip(r1['xyzcal.px'], r2['xyzcal.px']))) assert (all( abs(a - b) < eps for a, b in zip(r1['xyzcal.mm'], r2['xyzcal.mm']))) print 'OK'