@@ -34,6 +34,36 @@ def DoNothing(particle, fieldset, time):
3434 pass
3535
3636
37+ def test_pset_create_lon_lat (fieldset ):
38+ npart = 100
39+ lon = np .linspace (0 , 1 , npart , dtype = np .float32 )
40+ lat = np .linspace (1 , 0 , npart , dtype = np .float32 )
41+ pset = ParticleSet (fieldset , lon = lon , lat = lat , pclass = Particle )
42+ assert np .allclose ([p .lon for p in pset ], lon , rtol = 1e-12 )
43+ assert np .allclose ([p .lat for p in pset ], lat , rtol = 1e-12 )
44+
45+
46+ @pytest .mark .parametrize ("lonlatdepth_dtype" , [np .float64 , np .float32 ])
47+ def test_pset_create_line (fieldset , lonlatdepth_dtype ):
48+ npart = 100
49+ lon = np .linspace (0 , 1 , npart , dtype = lonlatdepth_dtype )
50+ lat = np .linspace (1 , 0 , npart , dtype = lonlatdepth_dtype )
51+ pset = ParticleSet .from_line (
52+ fieldset , size = npart , start = (0 , 1 ), finish = (1 , 0 ), pclass = Particle , lonlatdepth_dtype = lonlatdepth_dtype
53+ )
54+ assert np .allclose ([p .lon for p in pset ], lon , rtol = 1e-12 )
55+ assert np .allclose ([p .lat for p in pset ], lat , rtol = 1e-12 )
56+ assert isinstance (pset [0 ].lat , lonlatdepth_dtype )
57+
58+
59+ def test_create_empty_pset (fieldset ):
60+ pset = ParticleSet (fieldset , pclass = Particle )
61+ assert pset .size == 0
62+
63+ pset .execute (DoNothing , endtime = 1.0 , dt = 1.0 )
64+ assert pset .size == 0
65+
66+
3767@pytest .mark .parametrize (
3868 "time, expectation" ,
3969 [
0 commit comments