def test_2d_freeze_marginal(self): """ Test marginal spectra from 2d freezing """ xx = dadi.Numerics.default_grid(30) phi = dadi.PhiManip.phi_1D(xx) phi_orig = dadi.PhiManip.phi_1D_to_2D(xx, phi) phi_frozen1 = two_pops(phi_orig, xx, T=0.1, nu2=0.3, gamma2=0.5, frozen1=True) phi_frozen2 = two_pops(phi_orig, xx, T=0.1, nu1=0.2, gamma1=0.3, frozen2=True) phi_decouple = two_pops(phi_orig, xx, T=0.1, nu1=0.2, gamma1=0.3, nu2=0.3, gamma2=0.5) phi_orig_just1 = dadi.PhiManip.remove_pop(phi_orig, xx, 2) phi_orig_just2 = dadi.PhiManip.remove_pop(phi_orig, xx, 1) phi_frozen1_just1 = dadi.PhiManip.remove_pop(phi_frozen1, xx, 2) phi_frozen1_just2 = dadi.PhiManip.remove_pop(phi_frozen1, xx, 1) phi_frozen2_just1 = dadi.PhiManip.remove_pop(phi_frozen2, xx, 2) phi_frozen2_just2 = dadi.PhiManip.remove_pop(phi_frozen2, xx, 1) phi_decouple_just1 = dadi.PhiManip.remove_pop(phi_decouple, xx, 2) phi_decouple_just2 = dadi.PhiManip.remove_pop(phi_decouple, xx, 1) # Checks that if I freeze a population, the marginal spectrum # for that population does not change during integration. self.assert_( numpy.allclose(phi_orig_just1[1:-1], phi_frozen1_just1[1:-1], rtol=1e-4)) self.assert_( numpy.allclose(phi_orig_just2[1:-1], phi_frozen2_just2[1:-1], rtol=1e-4)) # Checks that if I freeze a population, the other population # continues to evolve as if decoupled from frozen population. # These tests are much less precise than those above, becaue # my integration scheme doesn't explicitly decouple the populations. self.assert_( numpy.allclose(phi_frozen2_just1[1:-1], phi_decouple_just1[1:-1], rtol=5e-2)) self.assert_( numpy.allclose(phi_frozen1_just2[1:-1], phi_decouple_just2[1:-1], rtol=5e-2))
def test_2d_freeze_marginal(self): """ Test marginal spectra from 2d freezing """ xx = dadi.Numerics.default_grid(30) phi = dadi.PhiManip.phi_1D(xx) phi = one_pop(phi, xx, T=0.2, nu=0.1) phi_orig = dadi.PhiManip.phi_1D_to_2D(xx, phi) phi_frozen1 = two_pops(phi_orig, xx, T=0.1, nu2=0.3, gamma2=0.5, frozen1=True) phi_frozen2 = two_pops(phi_orig, xx, T=0.1, nu1=0.2, gamma1=0.3, frozen2=True) phi_decouple = two_pops(phi_orig, xx, T=0.1, nu1=0.2, gamma1=0.3, nu2=0.3, gamma2=0.5) phi_orig_just1 = dadi.PhiManip.remove_pop(phi_orig, xx, 2) phi_orig_just2 = dadi.PhiManip.remove_pop(phi_orig, xx, 1) phi_frozen1_just1 = dadi.PhiManip.remove_pop(phi_frozen1, xx, 2) phi_frozen1_just2 = dadi.PhiManip.remove_pop(phi_frozen1, xx, 1) phi_frozen2_just1 = dadi.PhiManip.remove_pop(phi_frozen2, xx, 2) phi_frozen2_just2 = dadi.PhiManip.remove_pop(phi_frozen2, xx, 1) phi_decouple_just1 = dadi.PhiManip.remove_pop(phi_decouple, xx, 2) phi_decouple_just2 = dadi.PhiManip.remove_pop(phi_decouple, xx, 1) # Checks that if I freeze a population, the marginal spectrum # for that population does not change during integration. self.assert_(numpy.allclose(phi_orig_just1[1:-1], phi_frozen1_just1[1:-1], rtol=1e-4)) self.assert_(numpy.allclose(phi_orig_just2[1:-1], phi_frozen2_just2[1:-1], rtol=1e-4)) # Checks that if I freeze a population, the other population # continues to evolve as if decoupled from frozen population. # These tests are much less precise than those above, becaue # my integration scheme doesn't explicitly decouple the populations. self.assert_(numpy.allclose(phi_frozen2_just1[1:-1], phi_decouple_just1[1:-1], rtol=5e-2)) self.assert_(numpy.allclose(phi_frozen1_just2[1:-1], phi_decouple_just2[1:-1], rtol=5e-2))
def test_2d_correctness(self): """ Test marginal spectra from 3d freezing """ xx = dadi.Numerics.default_grid(30) phi = dadi.PhiManip.phi_1D(xx) phi = dadi.PhiManip.phi_1D_to_2D(xx, phi) phi = two_pops(phi, xx, T=0.1, nu2=0.3, gamma2=0.5, frozen1=True) fs = dadi.Spectrum.from_phi(phi, [10,10], [xx,xx]) fs_stored = dadi.Spectrum.from_file('test_2D_frozen1.fs') self.assert_(numpy.ma.allclose(fs, fs_stored, rtol=1e-2))
def test_2d_correctness(self): """ Test marginal spectra from 3d freezing """ xx = dadi.Numerics.default_grid(30) phi = dadi.PhiManip.phi_1D(xx) phi = dadi.PhiManip.phi_1D_to_2D(xx, phi) phi = two_pops(phi, xx, T=0.1, nu2=0.3, gamma2=0.5, frozen1=True) fs = dadi.Spectrum.from_phi(phi, [10, 10], [xx, xx]) fs_stored = dadi.Spectrum.from_file('test_2D_frozen1.fs') self.assert_(numpy.ma.allclose(fs, fs_stored, rtol=1e-2))