def test_ellipticity(parameter, kref, atol): velocity_model = helpers.velocity_model(5) es = disba.EllipticitySensitivity(*velocity_model, dp=0.005) ke = es(10.0, 0, parameter) assert numpy.allclose(kref, ke.kernel.sum(), atol=atol)
def test_group(wave, parameter, kref, atol): velocity_model = helpers.velocity_model(5) gs = disba.GroupSensitivity(*velocity_model, dt=0.005, dp=0.005) kg = gs(10.0, 0, wave, parameter) assert numpy.allclose(kref, kg.kernel.sum(), atol=atol)
def test_phase(wave, parameter, kref, atol): velocity_model = helpers.velocity_model(5) ps = disba.PhaseSensitivity(*velocity_model, dp=0.005) kp = ps(10.0, 0, wave, parameter) assert numpy.allclose(kref, kp.kernel.sum(), atol=atol)
def test_depthplot(monkeypatch): velocity_model = helpers.velocity_model(5) x = velocity_model[1] z = velocity_model[0].cumsum() - velocity_model[0][0] monkeypatch.setattr(plt, "show", lambda: None) disba.depthplot(x, z, velocity_model[0].sum())
def test_water_layer(wave, algorithm, cref): velocity_model = helpers.velocity_model(5, water_layer=True) t = numpy.logspace(0.0, 1.0, 20) pd = disba.PhaseDispersion(*velocity_model, algorithm=algorithm) cp = pd(t, wave=wave) assert numpy.allclose(cref, cp.velocity.sum(), atol=0.001)
def test_group(mode, wave, algorithm, cref): velocity_model = helpers.velocity_model(5) t = numpy.logspace(0.0, 1.0, 20) gd = disba.GroupDispersion(*velocity_model, algorithm=algorithm) cg = gd(t, mode, wave) assert numpy.allclose(cref, cg.velocity.sum(), atol=0.001)
def test_ellipticity(mode, eref): velocity_model = helpers.velocity_model(5) t = numpy.logspace(0.0, 1.0, 20) ell = disba.Ellipticity(*velocity_model) rel = ell(t, mode=mode) assert numpy.allclose(eref, rel.ellipticity.sum(), atol=0.001)
def test_eigen(wave, water_layer, eref): velocity_model = helpers.velocity_model(5, water_layer=water_layer) eigf = disba.EigenFunction(*velocity_model) eig = eigf(10.0, 0, wave) for k, v in eref.items(): assert numpy.allclose(v, getattr(eig, k).sum(), atol=1.0e-3)
def test_resample(mode, wave, algorithm): velocity_model = helpers.velocity_model(5) t = numpy.logspace(0.0, 1.0, 20) pd = disba.PhaseDispersion(*velocity_model, algorithm=algorithm) cref = pd(t, mode, wave) pd.resample(0.1) cp = pd(t, mode, wave) assert numpy.allclose(cref.velocity.sum(), cp.velocity.sum(), atol=0.1)