예제 #1
0
파일: test_utils.py 프로젝트: V107/empymod
def test_check_bipole():
    # Wrong size
    with pytest.raises(ValueError):
        utils.check_bipole([0, 0, 0], 'tvar')

    # # Dipole stuff

    # Normal case
    ipole = [[0, 0, 0], [10, 20, 30], [100, 0, 100], 0, 32]
    inp_type = type(ipole[0])
    pole, nout, outz, isdipole = utils.check_bipole(ipole, 'tvar')
    out_type = type(ipole[0])
    assert inp_type == out_type  # Check input wasn't altered.
    assert_allclose(pole[0], np.array([0, 0, 0]))
    assert_allclose(pole[1], np.array([10, 20, 30]))
    assert_allclose(pole[2], np.array([100, 0, 100]))
    assert nout == 3
    assert outz == 3
    assert_allclose(isdipole, True)

    # Multiple azimuth
    pole = [[0, 0, 0], [10, 20, 30], [100, 0, 100], [0, 1, 2], 1]
    assert_allclose(pole[0], np.array([0, 0, 0]))
    assert_allclose(pole[1], np.array([10, 20, 30]))
    assert_allclose(pole[2], np.array([100, 0, 100]))
    assert_allclose(pole[3], np.array([0, 1, 2]))
    assert_allclose(pole[4], np.array([1, 1, 1]))

    # Multiple dip
    pole = [[0, 0, 0], [10, 20, 30], [100, 0, 100], 1, [0, 1, 2]]
    assert_allclose(pole[0], np.array([0, 0, 0]))
    assert_allclose(pole[1], np.array([10, 20, 30]))
    assert_allclose(pole[2], np.array([100, 0, 100]))
    assert_allclose(pole[3], np.array([1, 1, 1]))
    assert_allclose(pole[4], np.array([0, 1, 2]))

    # x.size != y.size
    pole = [[0, 0], [10, 20, 30], [100, 0, 100], 0, 0]
    with pytest.raises(ValueError):
        utils.check_bipole(pole, 'tvar')

    # # Bipole stuff

    # Dipole instead bipole
    pole = [0, 0, 1000, 1000, 10, 10]
    with pytest.raises(ValueError):
        utils.check_bipole(pole, 'tvar')

    # Normal case
    ipole = [0, 0, 1000, 1000, 10, 20]
    inp_type = type(ipole[0])
    pole, nout, outz, isdipole = utils.check_bipole(ipole, 'tvar')
    out_type = type(ipole[0])
    assert inp_type == out_type  # Check input wasn't altered.
    assert_allclose(pole[0], 0)
    assert_allclose(pole[1], 0)
    assert_allclose(pole[2], 1000)
    assert_allclose(pole[3], 1000)
    assert_allclose(pole[4], 10)
    assert_allclose(pole[5], 20)
    assert nout == 1
    assert outz == 1
    assert_allclose(isdipole, False)

    # Pole one has variable depths
    pole = [[0, 0], [10, 10], [0, 0], [20, 30], [10, 20], 0]
    pole, nout, outz, _ = utils.check_bipole(pole, 'tvar')
    assert_allclose(pole[4], [10, 20])
    assert_allclose(pole[5], [0, 0])
    assert nout == 2
    assert outz == 2

    # Pole one has variable depths
    pole = [[0, 0], [10, 10], [0, 0], [20, 30], 10, [20, 0]]
    pole, nout, outz, _ = utils.check_bipole(pole, 'tvar')
    assert_allclose(pole[4], [10, 10])
    assert_allclose(pole[5], [20, 0])
    assert nout == 2
    assert outz == 2
예제 #2
0
def test_check_bipole():
    # Wrong size
    with pytest.raises(ValueError):
        utils.check_bipole([0, 0, 0], 'tvar')

    # # Dipole stuff

    # Normal case
    pole = [[0, 0, 0], [10, 20, 30], [100, 0, 100], 0, 32]
    pole, nout, outz, isdipole = utils.check_bipole(pole, 'tvar')
    assert_allclose(pole[0], np.array([0, 0, 0]))
    assert_allclose(pole[1], np.array([10, 20, 30]))
    assert_allclose(pole[2], np.array([100, 0, 100]))
    assert nout == 3
    assert outz == 3
    assert_allclose(isdipole, True)

    # Wrong azimuth
    pole = [[0, 0, 0], [10, 20, 30], [100, 0, 100], [0, 1, 2], 1]
    with pytest.raises(ValueError):
        utils.check_bipole(pole, 'tvar')
    # Wrong dip
    pole = [[0, 0, 0], [10, 20, 30], [100, 0, 100], 1, [0, 1, 2]]
    with pytest.raises(ValueError):
        utils.check_bipole(pole, 'tvar')
    # x.size != y.size
    pole = [[0, 0], [10, 20, 30], [100, 0, 100], 0, 0]
    with pytest.raises(ValueError):
        utils.check_bipole(pole, 'tvar')

    # # Bipole stuff

    # Dipole instead bipole
    pole = [0, 0, 1000, 1000, 10, 10]
    with pytest.raises(ValueError):
        utils.check_bipole(pole, 'tvar')

    # Normal case
    pole = [0, 0, 1000, 1000, 10, 20]
    pole, nout, outz, isdipole = utils.check_bipole(pole, 'tvar')
    assert_allclose(pole[0], 0)
    assert_allclose(pole[1], 0)
    assert_allclose(pole[2], 1000)
    assert_allclose(pole[3], 1000)
    assert_allclose(pole[4], 10)
    assert_allclose(pole[5], 20)
    assert nout == 1
    assert outz == 1
    assert_allclose(isdipole, False)

    # Pole one has variable depths
    pole = [[0, 0], [10, 10], [0, 0], [20, 30], [10, 20], 0]
    pole, nout, outz, _ = utils.check_bipole(pole, 'tvar')
    assert_allclose(pole[4], [10, 20])
    assert_allclose(pole[5], [0, 0])
    assert nout == 2
    assert outz == 2

    # Pole one has variable depths
    pole = [[0, 0], [10, 10], [0, 0], [20, 30], 10, [20, 0]]
    pole, nout, outz, _ = utils.check_bipole(pole, 'tvar')
    assert_allclose(pole[4], [10, 10])
    assert_allclose(pole[5], [20, 0])
    assert nout == 2
    assert outz == 2