Exemplo n.º 1
0
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'