コード例 #1
0
def test_beam_object_comparison():
    direction = matrix.col((0.013142, 0.002200, 1.450476))
    unit_direction = direction.normalize()
    wavelength = 0.689400
    s0 = -unit_direction * 1.0 / wavelength

    # Equal beams with scan-points set
    b1 = Beam(s0)
    b1.set_s0_at_scan_points([s0] * 5)
    b2 = Beam(s0)
    b2.set_s0_at_scan_points([s0] * 5)

    assert b1 == b2
    assert b1.is_similar_to(b2)

    # Different direction
    b3 = Beam(-s0)
    b3.set_s0_at_scan_points([-s0] * 5)
    assert b1 != b3
    assert not b1.is_similar_to(b3)

    # Different wavelength
    b4 = Beam(s0 * 1.5)
    b4.set_s0_at_scan_points([s0 * 1.5] * 5)
    assert b1 != b4
    assert not b1.is_similar_to(b4)
コード例 #2
0
ファイル: test_serialize.py プロジェクト: cctbx/dxtbx
def test_beam_with_scan_points():
    b1 = Beam((1, 0, 0), 2, 0.1, 0.1)

    s0_static = matrix.col(b1.get_s0())
    b1.set_s0_at_scan_points([s0_static] * 5)
    d = b1.to_dict()
    b2 = BeamFactory.from_dict(d)

    for s0comp in d["s0_at_scan_points"]:
        assert matrix.col(s0comp) == s0_static

    for s0comp in b2.get_s0_at_scan_points():
        assert matrix.col(s0comp) == s0_static

    assert b1 == b2
コード例 #3
0
def test_beam_with_scan_points():
    from dxtbx.model import Beam, BeamFactory
    b1 = Beam((1, 0, 0), 2, 0.1, 0.1)
    from scitbx import matrix
    s0_static = matrix.col(b1.get_s0())
    b1.set_s0_at_scan_points([s0_static] * 5)
    d = b1.to_dict()
    b2 = BeamFactory.from_dict(d)

    for s0comp in d['s0_at_scan_points']:
        assert matrix.col(s0comp) == s0_static

    for s0comp in b2.get_s0_at_scan_points():
        assert matrix.col(s0comp) == s0_static

    assert b1 == b2
コード例 #4
0
ファイル: tst_beam.py プロジェクト: renesugar/cctbx_project
def tst_scan_varying():

    from scitbx import matrix
    direction = matrix.col((0.013142, 0.002200, 1.450476))
    unit_direction = direction.normalize()
    wavelength = 0.689400
    s0 = -unit_direction * 1.0 / wavelength

    # Create the beam
    b = Beam(s0)

    assert b.get_num_scan_points() == 0
    assert b.get_s0_at_scan_points().size() == 0
    try:
        b.get_s0_at_scan_point(0)  # should raise RuntimeError
    except RuntimeError:
        pass

    # set varying beam
    num_scan_points = 11
    s0_static = matrix.col(b.get_s0())
    s0_as_scan_points = [s0_static]
    axis = matrix.col.random(3, -1., 1.).normalize()
    for i in range(num_scan_points - 1):
        s0_as_scan_points.append(s0_as_scan_points[-1].rotate_around_origin(
            axis, angle=0.01, deg=True))
    b.set_s0_at_scan_points(s0_as_scan_points)
    assert b.get_num_scan_points() == 11
    assert b.get_s0_at_scan_points().size() == 11

    for t in range(num_scan_points):
        s0_t = matrix.col(b.get_s0_at_scan_point(t))
        assert s0_t == s0_as_scan_points[t]

    # also test setting as tuple
    b.set_s0_at_scan_points(tuple(s0_as_scan_points))
    assert b.get_num_scan_points() == 11
    assert b.get_s0_at_scan_points().size() == 11

    # test resetting
    b.reset_scan_points()
    assert b.get_num_scan_points() == 0
    assert b.get_s0_at_scan_points().size() == 0

    print 'OK'