예제 #1
0
def test_get_abs(capsys):
    # Check some cases
    #       general,  x/y-pl,  x/z-pl    x
    ang = [[np.pi / 4, np.pi / 4], [np.pi / 6, 0], [0, np.pi / 3], [0, 0]]
    # Results for EE, ME, EM, MM
    res = [[11, 12, 13, 21, 22, 23, 31, 32, 33], [11, 12, 13, 21, 22, 23],
           [11, 12, 13, 31, 32, 33], [11, 12, 13], [11, 12, 21, 22, 31, 32],
           [11, 12, 21, 22], [11, 12, 31, 32], [11, 12],
           [11, 13, 21, 23, 31, 33], [11, 13, 21, 23], [11, 13, 31, 33],
           [11, 13], [11, 21, 31], [11, 21], [11, 31], [11],
           [14, 24, 34, 15, 25, 35, 16, 26, 36], [14, 24, 34, 15, 25, 35],
           [14, 24, 34, 16, 26, 36], [14, 24, 34], [14, 24, 15, 25, 16, 26],
           [14, 24, 15, 25], [14, 24, 16, 26], [14, 24],
           [14, 34, 15, 35, 16, 36], [14, 34, 15, 35], [14, 34, 16, 36],
           [14, 34], [14, 15, 16], [14, 15], [14, 16], [14],
           [14, 15, 16, 24, 25, 26, 34, 35, 36], [14, 15, 16, 24, 25, 26],
           [14, 15, 16, 34, 35, 36], [14, 15, 16], [14, 15, 24, 25, 34, 35],
           [14, 15, 24, 25], [14, 15, 34, 35], [14, 15],
           [14, 16, 24, 26, 34, 36], [14, 16, 24, 26], [14, 16, 34, 36],
           [14, 16], [14, 24, 34], [14, 24], [14, 34], [14],
           [11, 12, 13, 21, 22, 23, 31, 32, 33], [11, 12, 13, 21, 22, 23],
           [11, 12, 13, 31, 32, 33], [11, 12, 13], [11, 12, 21, 22, 31, 32],
           [11, 12, 21, 22], [11, 12, 31, 32], [11, 12],
           [11, 13, 21, 23, 31, 33], [11, 13, 21, 23], [11, 13, 31, 33],
           [11, 13], [11, 21, 31], [11, 21], [11, 31], [11]]

    i = 0
    for msrc in [False, True]:
        for mrec in [False, True]:
            for src in ang:
                for rec in ang:
                    out = utils.get_abs(msrc, mrec, src[0], src[1], rec[0],
                                        rec[1], 0)
                    assert_allclose(out, res[i])
                    i += 1

    # Check some more
    #       y/z-plane,  z-dir
    ang = [[np.pi / 2, 0], [0, np.pi / 2]]
    # Results for EE, ME, EM, MM
    res = [[22], [32], [23], [33], [25], [26], [35], [36], [25], [35], [26],
           [36], [22], [32], [23], [33]]

    i = 0
    for msrc in [False, True]:
        for mrec in [False, True]:
            for src in ang:
                for rec in ang:
                    out = utils.get_abs(msrc, mrec, src[0], src[1], rec[0],
                                        rec[1], 0)
                    assert_allclose(out, res[i])
                    i += 1

    # Check print statement
    _ = utils.get_abs(True, True, 90, 0, 0, 90, 3)
    out, _ = capsys.readouterr()
    assert out == "   Required ab's   :  11 12 31 32\n"
예제 #2
0
파일: test_utils.py 프로젝트: V107/empymod
def test_get_abs(capsys):
    # Check some cases
    #       general,  x/y-pl,  x/z-pl    x
    ang = [[np.pi / 4, np.pi / 4], [np.pi / 6, 0], [0, np.pi / 3], [0, 0]]
    # Results for EE, ME, EM, MM
    res = [[11, 12, 13, 21, 22, 23, 31, 32, 33], [11, 12, 13, 21, 22, 23],
           [11, 12, 13, 31, 32, 33], [11, 12, 13], [11, 12, 21, 22, 31, 32],
           [11, 12, 21, 22], [11, 12, 31, 32], [11, 12],
           [11, 13, 21, 23, 31, 33], [11, 13, 21, 23], [11, 13, 31, 33],
           [11, 13], [11, 21, 31], [11, 21], [11, 31], [11],
           [14, 24, 34, 15, 25, 35, 16, 26, 36], [14, 24, 34, 15, 25, 35],
           [14, 24, 34, 16, 26, 36], [14, 24, 34], [14, 24, 15, 25, 16, 26],
           [14, 24, 15, 25], [14, 24, 16, 26], [14, 24],
           [14, 34, 15, 35, 16, 36], [14, 34, 15, 35], [14, 34, 16, 36],
           [14, 34], [14, 15, 16], [14, 15], [14, 16], [14],
           [14, 15, 16, 24, 25, 26, 34, 35, 36], [14, 15, 16, 24, 25, 26],
           [14, 15, 16, 34, 35, 36], [14, 15, 16], [14, 15, 24, 25, 34, 35],
           [14, 15, 24, 25], [14, 15, 34, 35], [14, 15],
           [14, 16, 24, 26, 34, 36], [14, 16, 24, 26], [14, 16, 34, 36],
           [14, 16], [14, 24, 34], [14, 24], [14, 34], [14],
           [11, 12, 13, 21, 22, 23, 31, 32, 33], [11, 12, 13, 21, 22, 23],
           [11, 12, 13, 31, 32, 33], [11, 12, 13], [11, 12, 21, 22, 31, 32],
           [11, 12, 21, 22], [11, 12, 31, 32], [11, 12],
           [11, 13, 21, 23, 31, 33], [11, 13, 21, 23], [11, 13, 31, 33],
           [11, 13], [11, 21, 31], [11, 21], [11, 31], [11]]

    i = 0
    for msrc in [False, True]:
        for mrec in [False, True]:
            for src in ang:
                for rec in ang:
                    out = utils.get_abs(msrc, mrec, src[0], src[1], rec[0],
                                        rec[1], 0)
                    assert_allclose(out, res[i])
                    i += 1

    # Check some more
    #       y/z-plane,  z-dir
    ang = [[np.pi / 2, 0], [0, np.pi / 2]]
    # Results for EE, ME, EM, MM
    res = [[22], [32], [23], [33], [25], [26], [35], [36], [25], [35], [26],
           [36], [22], [32], [23], [33]]

    i = 0
    for msrc in [False, True]:
        for mrec in [False, True]:
            for src in ang:
                for rec in ang:
                    out = utils.get_abs(msrc, mrec, src[0], src[1], rec[0],
                                        rec[1], 0)
                    assert_allclose(out, res[i])
                    i += 1

    # Check print statement
    _ = utils.get_abs(True, True, 90, 0, 0, 90, 3)
    out, _ = capsys.readouterr()
    assert out == "   Required ab's   :  11 12 31 32\n"

    # Assure that for different, but aligned angles, they are not deleted.
    ab_calc = utils.get_abs(False, False, np.array([0., np.pi / 2]),
                            np.array([0., 0.]), np.array([0.]), np.array([0.]),
                            0)
    assert_allclose(ab_calc, [11, 12])
    ab_calc = utils.get_abs(False, False, np.array([0., 0.]),
                            np.array([3 * np.pi / 2, np.pi]), np.array([0.]),
                            np.array([0.]), 0)
    assert_allclose(ab_calc, [11, 13])
    ab_calc = utils.get_abs(False, False, np.array([0.]), np.array([0.]),
                            np.array([0., np.pi / 2]), np.array([0., 0.]), 0)
    assert_allclose(ab_calc, [11, 21])
    ab_calc = utils.get_abs(False, False, np.array([0.]), np.array([0.]),
                            np.array([0., 0.]),
                            np.array([3 * np.pi / 2, np.pi]), 0)
    assert_allclose(ab_calc, [11, 31])