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
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