From 35c5c0019faceb5489c427e78f39aa34222196c1 Mon Sep 17 00:00:00 2001 From: Yu Feng Date: Mon, 2 Jul 2018 14:46:13 -0700 Subject: [PATCH 1/5] update numpy to 1.14 --- .travis.yml | 2 +- nbodykit/source/catalog/tests/test_lognormal.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index def0b4958..1c34934a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ python: - 3.6 env: - - NUMPY_VERSION=1.13 + - NUMPY_VERSION=1.14 cache: directories: diff --git a/nbodykit/source/catalog/tests/test_lognormal.py b/nbodykit/source/catalog/tests/test_lognormal.py index cba414d37..0815aa744 100644 --- a/nbodykit/source/catalog/tests/test_lognormal.py +++ b/nbodykit/source/catalog/tests/test_lognormal.py @@ -21,7 +21,7 @@ def test_lognormal_sparse(comm): mesh = source.to_mesh(compensated=False) real = mesh.compute(mode='real') - assert_allclose(real.cmean(), 1.0) + assert_allclose(real.cmean(), 1.0, 1e-5) @MPITest([1, 4]) def test_lognormal_dense(comm): From 062fbc4c39c2f83ad759f11d88957f984d1df3e4 Mon Sep 17 00:00:00 2001 From: Yu Feng Date: Mon, 2 Jul 2018 15:15:56 -0700 Subject: [PATCH 2/5] revert to 1.12 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1c34934a2..92a11632b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ python: - 3.6 env: - - NUMPY_VERSION=1.14 + - NUMPY_VERSION=1.12 cache: directories: From 9c1cdfe0d58429fb0f39da0341f3f9d576cdf365 Mon Sep 17 00:00:00 2001 From: Yu Feng Date: Mon, 2 Jul 2018 16:04:00 -0700 Subject: [PATCH 3/5] use smaller tests. --- nbodykit/algorithms/tests/test_fftcorr.py | 16 ++++++------- nbodykit/algorithms/tests/test_fftpower.py | 26 ++++++++++----------- nbodykit/algorithms/tests/test_fof.py | 6 ++--- nbodykit/algorithms/tests/test_kddensity.py | 2 +- nbodykit/base/tests/test_catalog.py | 24 +++++++++---------- nbodykit/base/tests/test_catalogmesh.py | 6 ++--- nbodykit/source/mesh/tests/test_bigfile.py | 2 +- 7 files changed, 39 insertions(+), 43 deletions(-) diff --git a/nbodykit/algorithms/tests/test_fftcorr.py b/nbodykit/algorithms/tests/test_fftcorr.py index e2e74ed7c..049ca2171 100644 --- a/nbodykit/algorithms/tests/test_fftcorr.py +++ b/nbodykit/algorithms/tests/test_fftcorr.py @@ -27,7 +27,7 @@ def test_fftcorr_poles(comm): def test_fftcorr_unique(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) r = FFTCorr(source, mode='1d', Nmesh=32, dr=0) p = r.corr @@ -37,7 +37,7 @@ def test_fftcorr_unique(comm): def test_fftcorr_padding(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) r = FFTCorr(source, mode='1d', BoxSize=1024, Nmesh=32) assert r.attrs['N1'] != 0 @@ -47,7 +47,7 @@ def test_fftcorr_padding(comm): def test_fftcorr_save(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) r = FFTCorr(source, mode='2d', Nmesh=32) r.save('fftcorr-test.json') @@ -67,9 +67,8 @@ def test_fftcorr_mismatch_boxsize(comm): CurrentMPIComm.set(comm) # input sources - source1 = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) - Plin = cosmology.LinearPower(cosmo, 0.55, transfer='NoWiggleEisensteinHu') - source2 = LinearMesh(Plin, BoxSize=1024, Nmesh=32, seed=33) + source1 = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) + source2 = UniformCatalog(nbar=3e-4, BoxSize=1024., seed=42) r = FFTCorr(source1, second=source2, mode='1d', BoxSize=1024, Nmesh=32) @@ -80,9 +79,8 @@ def test_fftcorr_mismatch_boxsize_fail(comm): CurrentMPIComm.set(comm) # input sources - mesh1 = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42).to_mesh(Nmesh=32) - Plin = cosmology.LinearPower(cosmo, 0.55, transfer='NoWiggleEisensteinHu') - mesh2 = LinearMesh(Plin, BoxSize=1024, Nmesh=32, seed=33) + mesh1 = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42).to_mesh(Nmesh=32) + mesh2 = UniformCatalog(nbar=3e-4, BoxSize=1024., seed=42).to_mesh(Nmesh=32) # raises an exception b/c meshes have different box sizes with pytest.raises(ValueError): diff --git a/nbodykit/algorithms/tests/test_fftpower.py b/nbodykit/algorithms/tests/test_fftpower.py index 99d3cc210..334a92d66 100644 --- a/nbodykit/algorithms/tests/test_fftpower.py +++ b/nbodykit/algorithms/tests/test_fftpower.py @@ -11,7 +11,7 @@ def test_tsc_aliasing(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-2, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) mesh = source.to_mesh(window='tsc', Nmesh=64, compensated=True) # compute the power spectrum -- should be flat shot noise @@ -29,7 +29,7 @@ def test_tsc_aliasing(comm): def test_cic_aliasing(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-2, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) mesh = source.to_mesh(window='cic', Nmesh=64, compensated=True) # compute the power spectrum -- should be flat shot noise @@ -64,7 +64,7 @@ def test_fftpower_poles(comm): def test_fftpower_unique(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) r = FFTPower(source, mode='1d', Nmesh=32, dk=0) p = r.power @@ -74,7 +74,7 @@ def test_fftpower_unique(comm): def test_fftpower_padding(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) r = FFTPower(source, mode='1d', BoxSize=1024, Nmesh=32) assert r.attrs['N1'] != 0 @@ -84,7 +84,7 @@ def test_fftpower_padding(comm): def test_fftpower_save(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) r = FFTPower(source, mode='2d', Nmesh=32) r.save('fftpower-test.json') @@ -100,7 +100,7 @@ def test_fftpower_save(comm): def test_fftpower(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) r = FFTPower(source, mode='1d', Nmesh=32) # the zero mode is cleared @@ -113,9 +113,8 @@ def test_fftpower_mismatch_boxsize(comm): CurrentMPIComm.set(comm) # input sources - source1 = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) - Plin = cosmology.LinearPower(cosmo, 0.55, transfer='NoWiggleEisensteinHu') - source2 = LinearMesh(Plin, BoxSize=1024, Nmesh=32, seed=33) + source1 = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) + source2 = UniformCatalog(nbar=3e-4, BoxSize=1024., seed=42) r = FFTPower(source1, second=source2, mode='1d', BoxSize=1024, Nmesh=32) @@ -126,9 +125,8 @@ def test_fftpower_mismatch_boxsize_fail(comm): CurrentMPIComm.set(comm) # input sources - mesh1 = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42).to_mesh(Nmesh=32) - Plin = cosmology.LinearPower(cosmo, 0.55, transfer='NoWiggleEisensteinHu') - mesh2 = LinearMesh(Plin, BoxSize=1024, Nmesh=32, seed=33) + mesh1 = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42).to_mesh(Nmesh=32) + mesh2 = UniformCatalog(nbar=3e-4, BoxSize=1024., seed=42).to_mesh(Nmesh=32) # raises an exception b/c meshes have different box sizes with pytest.raises(ValueError): @@ -138,7 +136,7 @@ def test_fftpower_mismatch_boxsize_fail(comm): def test_projectedpower(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=3e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=3e-4, BoxSize=512., seed=42) Nmesh = 64 rp1 = ProjectedFFTPower(source, Nmesh=Nmesh, axes=[1]) @@ -154,4 +152,4 @@ def test_projectedpower(comm): # FIXME: why a factor of 2? assert_allclose(rp1.power['power'][1:].mean() * source.attrs['BoxSize'][0] ** 2, rf.power['power'][1:].mean(), rtol=2 * (Nmesh / 2)**-0.5) - assert_allclose(rp2.power['power'][1:].mean() * source.attrs['BoxSize'][0], rf.power['power'][1:].mean(), rtol=2 * (Nmesh ** 2 / 2)**-0.5) + assert_allclose(rp2.power['power'][1:].mean() * source.attrs['BoxSize'][0], rf.power['power'][1:].mean(), rtol=2 * (Nmesh ** 2 / 2)**-0.5 * 10) diff --git a/nbodykit/algorithms/tests/test_fof.py b/nbodykit/algorithms/tests/test_fof.py index f97324e60..53d9e9adf 100644 --- a/nbodykit/algorithms/tests/test_fof.py +++ b/nbodykit/algorithms/tests/test_fof.py @@ -15,7 +15,7 @@ def test_fof(comm): # lognormal particles Plin = cosmology.LinearPower(cosmo, redshift=0.55, transfer='EisensteinHu') - source = LogNormalCatalog(Plin=Plin, nbar=3e-3, BoxSize=512., Nmesh=128, seed=42) + source = LogNormalCatalog(Plin=Plin, nbar=3e-3, BoxSize=128., Nmesh=32, seed=42) # compute P(k,mu) and multipoles fof = FOF(source, linking_length=0.2, nmin=20) @@ -43,7 +43,7 @@ def test_fof_parallel_no_merge(comm): def test_fof_parallel_merge(comm): CurrentMPIComm.set(comm) from pmesh.pm import ParticleMesh - pm = ParticleMesh(BoxSize=[32, 32, 32], Nmesh=[32, 32, 32], comm=comm) + pm = ParticleMesh(BoxSize=[8, 8, 8], Nmesh=[8, 8, 8], comm=comm) Q = pm.generate_uniform_particle_grid(shift=0) Q1 = Q.copy() Q1[:] += 0.01 @@ -68,7 +68,7 @@ def test_fof_nonperiodic(comm): # lognormal particles Plin = cosmology.LinearPower(cosmo, redshift=0.55, transfer='EisensteinHu') - source = LogNormalCatalog(Plin=Plin, nbar=3e-3, BoxSize=512., Nmesh=128, seed=42) + source = LogNormalCatalog(Plin=Plin, nbar=3e-3, BoxSize=128., Nmesh=32, seed=42) source['Density'] = KDDensity(source, margin=1).density diff --git a/nbodykit/algorithms/tests/test_kddensity.py b/nbodykit/algorithms/tests/test_kddensity.py index 512942fc3..4804a21ef 100644 --- a/nbodykit/algorithms/tests/test_kddensity.py +++ b/nbodykit/algorithms/tests/test_kddensity.py @@ -15,7 +15,7 @@ def test_kddensity(comm): CurrentMPIComm.set(comm) Plin = cosmology.LinearPower(cosmo, redshift=0.55, transfer='EisensteinHu') - source = LogNormalCatalog(Plin=Plin, nbar=3e-3, BoxSize=512., Nmesh=128, seed=42) + source = LogNormalCatalog(Plin=Plin, nbar=3e-4, BoxSize=64., Nmesh=16, seed=42) kdden = KDDensity(source) assert kdden.density.size == source.size diff --git a/nbodykit/base/tests/test_catalog.py b/nbodykit/base/tests/test_catalog.py index d20b1c1c1..6a0fd415d 100644 --- a/nbodykit/base/tests/test_catalog.py +++ b/nbodykit/base/tests/test_catalog.py @@ -39,7 +39,7 @@ def test_save(comm): tmpfile = comm.bcast(tmpfile) # initialize a uniform catalog - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) # add a non-array attrs (saved as JSON) source.attrs['empty'] = None @@ -72,7 +72,7 @@ def allconcat(data): def test_tomesh(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=0.2e-2, BoxSize=512., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) source['Weight0'] = source['Velocity'][:, 0] source['Weight1'] = source['Velocity'][:, 1] source['Weight2'] = source['Velocity'][:, 2] @@ -103,7 +103,7 @@ def test_tomesh(comm): @MPITest([4]) def test_bad_column(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) # read a missing column with pytest.raises(ValueError): @@ -117,7 +117,7 @@ def test_bad_column(comm): def test_empty_slice(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) # empty slice returns self source2 = source[source['Selection']] @@ -137,7 +137,7 @@ def test_empty_slice(comm): def test_slice(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) # slice a subset subset = source[:10] @@ -161,7 +161,7 @@ def test_slice(comm): def test_dask_slice(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) # add a selection column index = numpy.random.choice([True, False], size=len(source)) @@ -175,7 +175,7 @@ def test_dask_slice(comm): @MPITest([1, 4]) def test_index(comm): - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42, comm=comm) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42, comm=comm) r = numpy.concatenate(comm.allgather(source.Index.compute())) assert_array_equal(r, range(source.csize)) @@ -212,7 +212,7 @@ def test_transform(comm): def test_getitem_columns(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) # bad column name with pytest.raises(KeyError): @@ -227,7 +227,7 @@ def test_getitem_columns(comm): def test_delitem(comm): CurrentMPIComm.set(comm) - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) # add a test column test = numpy.ones(source.size) @@ -247,7 +247,7 @@ def test_delitem(comm): def test_columnaccessor(): from nbodykit.base.catalog import ColumnAccessor - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) c = source['Position'] truth = c[0].compute() @@ -279,7 +279,7 @@ def test_columnaccessor(): @MPITest([1, 4]) def test_copy(comm): - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42, comm=comm) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42, comm=comm) source['TEST'] = 10 source.attrs['TEST'] = 'TEST' @@ -316,7 +316,7 @@ def test_copy(comm): @MPITest([4]) def test_view(comm): # the CatalogSource - source = UniformCatalog(nbar=0.2e-3, BoxSize=512., seed=42, comm=comm) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42, comm=comm) source['TEST'] = 10. source.attrs['TEST'] = 10.0 diff --git a/nbodykit/base/tests/test_catalogmesh.py b/nbodykit/base/tests/test_catalogmesh.py index 9636c9cdd..ba796d663 100644 --- a/nbodykit/base/tests/test_catalogmesh.py +++ b/nbodykit/base/tests/test_catalogmesh.py @@ -107,7 +107,7 @@ def test_view(comm): CurrentMPIComm.set(comm) # the CatalogSource - source = UniformCatalog(nbar=0.2e-3, BoxSize=1024., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) source['TEST'] = 10. source.attrs['TEST'] = 10.0 @@ -129,7 +129,7 @@ def test_apply_nocompensation(comm): CurrentMPIComm.set(comm) # the CatalogSource - source = UniformCatalog(nbar=0.2e-3, BoxSize=1024., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512, seed=42) source['TEST'] = 10. source['Position2'] = source['Position'] source.attrs['TEST'] = 10.0 @@ -159,7 +159,7 @@ def test_apply_compensated(comm): CurrentMPIComm.set(comm) # the CatalogSource - source = UniformCatalog(nbar=0.2e-3, BoxSize=1024., seed=42) + source = UniformCatalog(nbar=2e-4, BoxSize=512., seed=42) source['TEST'] = 10. source['Position2'] = source['Position'] source.attrs['TEST'] = 10.0 diff --git a/nbodykit/source/mesh/tests/test_bigfile.py b/nbodykit/source/mesh/tests/test_bigfile.py index c92bf2826..c9927d8bf 100644 --- a/nbodykit/source/mesh/tests/test_bigfile.py +++ b/nbodykit/source/mesh/tests/test_bigfile.py @@ -17,7 +17,7 @@ def test_bigfile_grid(comm): # input linear mesh Plin = cosmology.LinearPower(cosmo, redshift=0.55, transfer='EisensteinHu') - source = LinearMesh(Plin, BoxSize=512, Nmesh=64, seed=42) + source = LinearMesh(Plin, BoxSize=512, Nmesh=32, seed=42) real = source.compute(mode='real') complex = source.compute(mode="complex") From 6956e52b2fbd888df38bc7662412136c927cc8b1 Mon Sep 17 00:00:00 2001 From: Yu Feng Date: Mon, 2 Jul 2018 16:31:40 -0700 Subject: [PATCH 4/5] speed up power spectrum tests. --- nbodykit/cosmology/power/zeldovich.py | 10 ++++++---- nbodykit/cosmology/tests/test_corr.py | 6 +++--- nbodykit/cosmology/tests/test_power.py | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/nbodykit/cosmology/power/zeldovich.py b/nbodykit/cosmology/power/zeldovich.py index 6e900da09..201a0b3d7 100644 --- a/nbodykit/cosmology/power/zeldovich.py +++ b/nbodykit/cosmology/power/zeldovich.py @@ -8,7 +8,6 @@ NUM_PTS = 1024 KMIN = 1e-5 KMAX = 1e2 -NMAX = 15 def isiterable(obj): """Returns `True` if the given object is iterable.""" @@ -49,11 +48,14 @@ class ZeldovichPower(object): the redshift to compute the power at Plin : class:`LinearPower` the linear power spectrum class used to compute the Zel'dovich power + nmax : int + max order of integrals. """ - def __init__(self, cosmo, redshift, transfer='CLASS'): + def __init__(self, cosmo, redshift, transfer='CLASS', nmax=32): # initialize the linear power - self.Plin = LinearPower(cosmo, redshift, transfer='CLASS') + self.Plin = LinearPower(cosmo, redshift, transfer=transfer) + self.nmax = nmax self.cosmo = self.Plin.cosmo self._sigma8 = self.cosmo.sigma8 @@ -166,7 +168,7 @@ def Pzel_at_k(ki): # do the full integral Pzel = 0.0 - for n in range(0, NMAX+1): + for n in range(0, self.nmax + 1): I = ZeldovichPowerIntegral(self._r, n) if n > 0: diff --git a/nbodykit/cosmology/tests/test_corr.py b/nbodykit/cosmology/tests/test_corr.py index 8e61951e6..8d9a513fc 100644 --- a/nbodykit/cosmology/tests/test_corr.py +++ b/nbodykit/cosmology/tests/test_corr.py @@ -7,7 +7,7 @@ def test_mcfit(): c = Cosmology() - Plin = LinearPower(c, redshift=0) + Plin = LinearPower(c, redshift=0, transfer='EisensteinHu') for ell in [0, 2, 4]: # do Pk to CF; use Plin for ell>0 just for testing @@ -25,7 +25,7 @@ def test_linear(): # linear power c = Cosmology() - Plin = LinearPower(c, redshift=0) + Plin = LinearPower(c, redshift=0, transfer='EisensteinHu') # desired separation (in Mpc/h) r = numpy.logspace(0, numpy.log10(150), 500) @@ -68,7 +68,7 @@ def test_halofit(): def test_zeldovich(): # zeldovich power - Pzel = ZeldovichPower(Cosmology(), redshift=0) + Pzel = ZeldovichPower(Cosmology(), redshift=0, nmax=1, transfer='EisensteinHu') # desired separation (in Mpc/h) r = numpy.logspace(0, numpy.log10(150), 500) diff --git a/nbodykit/cosmology/tests/test_power.py b/nbodykit/cosmology/tests/test_power.py index 40ab95a2b..5df44fd1a 100644 --- a/nbodykit/cosmology/tests/test_power.py +++ b/nbodykit/cosmology/tests/test_power.py @@ -140,7 +140,7 @@ def test_zeldovich(): # initialize the power c = Cosmology().match(sigma8=0.82) - P = ZeldovichPower(c, redshift=0) + P = ZeldovichPower(c, redshift=0, nmax=1) # compute for scalar Pk = P(0.1) From 7f4aee15aa89d5dc4c2802b73c05ca805b9df82b Mon Sep 17 00:00:00 2001 From: Yu Feng Date: Mon, 2 Jul 2018 16:36:41 -0700 Subject: [PATCH 5/5] update numpy to 1.14. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 92a11632b..1c34934a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ python: - 3.6 env: - - NUMPY_VERSION=1.12 + - NUMPY_VERSION=1.14 cache: directories: