[yt-svn] commit/yt: 5 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Thu Oct 27 19:01:40 PDT 2016
5 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/9b8b72e70dd2/
Changeset: 9b8b72e70dd2
Branch: yt
User: ngoldbaum
Date: 2016-10-17 19:32:17+00:00
Summary: refactor test_fields to avoid repeatedly performing field detection
Affected #: 1 file
diff -r f7ef0effe08bb79cd7a1d3ef4126975957d870b9 -r 9b8b72e70dd2206acd7036fb542e564d28b9dfb7 yt/fields/tests/test_fields.py
--- a/yt/fields/tests/test_fields.py
+++ b/yt/fields/tests/test_fields.py
@@ -24,27 +24,6 @@
YTFieldUnitParseError, \
YTDimensionalityError
-base_ds = None
-
-
-def setup():
- global base_ds
- # Make this super teeny tiny
- fields, units = [], []
-
- for fname, (code_units, aliases, dn) in StreamFieldInfo.known_other_fields:
- fields.append(("gas", fname))
- units.append(code_units)
-
- base_ds = fake_random_ds(4, fields=fields, units=units, particles=20)
-
- base_ds.index
- base_ds.cosmological_simulation = 1
- base_ds.cosmology = Cosmology()
- from yt.config import ytcfg
- ytcfg["yt","__withintesting"] = "True"
- np.seterr(all = 'ignore')
-
def get_params(ds):
return dict(
axis = 0,
@@ -71,18 +50,80 @@
("gas", "velocity_y"),
("gas", "velocity_z"))
-def realistic_ds(fields, particle_fields, nprocs):
- np.random.seed(int(0x4d3d3d3))
- global base_ds
- units = [base_ds._get_field_info(*f).units for f in fields]
- punits = [base_ds._get_field_info('io', f).units for f in particle_fields]
- fields = [_strip_ftype(f) for f in fields]
+def _strip_ftype(field):
+ if not isinstance(field, tuple):
+ return field
+ elif field[0] in ("all", "io"):
+ return field
+ return field[1]
- ds = fake_random_ds(16, fields=fields, units=units, nprocs=nprocs,
- particle_fields=particle_fields,
- particle_field_units=punits,
- particles=base_ds.stream_handler.particle_count[0][0])
+class TestFieldAccess(object):
+ description = None
+
+ def __init__(self, field_name, ds, nprocs):
+ # Note this should be a field name
+ self.field_name = field_name
+ self.description = "Accessing_%s_%s" % (field_name, nprocs)
+ self.nprocs = nprocs
+ self.ds = ds
+
+ def __call__(self):
+ field = self.ds._get_field_info(*self.field_name)
+ skip_grids = False
+ needs_spatial = False
+ for v in field.validators:
+ if getattr(v, "ghost_zones", 0) > 0:
+ skip_grids = True
+ if hasattr(v, "ghost_zones"):
+ needs_spatial = True
+
+ ds = self.ds
+
+ # This gives unequal sized grids as well as subgrids
+ dd1 = ds.all_data()
+ dd2 = ds.all_data()
+ sp = get_params(ds)
+ dd1.field_parameters.update(sp)
+ dd2.field_parameters.update(sp)
+ with np.errstate(all='ignore'):
+ v1 = dd1[self.field_name]
+ # No more conversion checking
+ assert_equal(v1, dd1[self.field_name])
+ if not needs_spatial:
+ with field.unit_registry(dd2):
+ res = field._function(field, dd2)
+ res = dd2.apply_units(res, field.units)
+ assert_array_almost_equal_nulp(v1, res, 4)
+ if not skip_grids:
+ for g in ds.index.grids:
+ g.field_parameters.update(sp)
+ v1 = g[self.field_name]
+ g.clear_data()
+ g.field_parameters.update(sp)
+ r1 = field._function(field, g)
+ if field.particle_type:
+ assert_equal(v1.shape[0], g.NumberOfParticles)
+ else:
+ assert_array_equal(r1.shape, v1.shape)
+ for ax in 'xyz':
+ assert_array_equal(g[ax].shape, v1.shape)
+ with field.unit_registry(g):
+ res = field._function(field, g)
+ assert_array_equal(v1.shape, res.shape)
+ res = g.apply_units(res, field.units)
+ assert_array_almost_equal_nulp(v1, res, 4)
+
+def get_base_ds(nprocs):
+ fields, units = [], []
+
+ for fname, (code_units, aliases, dn) in StreamFieldInfo.known_other_fields:
+ fields.append(("gas", fname))
+ units.append(code_units)
+
+ ds = fake_random_ds(
+ 4, fields=fields, units=units, particles=20, nprocs=nprocs)
+ ds.index
ds.parameters["HydroMethod"] = "streaming"
ds.parameters["EOSType"] = 1.0
ds.parameters["EOSSoundSpeed"] = 1.0
@@ -99,107 +140,32 @@
omega_lambda=ds.omega_lambda,
unit_registry=ds.unit_registry)
return ds
+
+def test_all_fields():
+ datasets = {}
+
+ for nprocs in [1, 4, 8]:
+ ds = get_base_ds(nprocs)
+ datasets[nprocs] = ds
-def _strip_ftype(field):
- if not isinstance(field, tuple):
- return field
- elif field[0] in ("all", "io"):
- return field
- return field[1]
-
-
-class TestFieldAccess(object):
- description = None
-
- def __init__(self, field_name, nproc):
- # Note this should be a field name
- self.field_name = field_name
- self.description = "Accessing_%s_%s" % (field_name, nproc)
- self.nproc = nproc
-
- def __call__(self):
- global base_ds
- field = base_ds._get_field_info(*self.field_name)
- deps = field.get_dependencies(ds = base_ds)
- requested = deps.requested
- particle_fields = \
- ['particle_position_x', 'particle_position_y', 'particle_position_z',
- 'particle_velocity_x', 'particle_velocity_y', 'particle_velocity_z',
- 'particle_mass']
- fields = list(_base_fields)
-
- for rf in requested:
- if rf[0] == 'io' or rf[0] == 'all':
- if rf not in particle_fields or rf[1] not in particle_fields:
- particle_fields.append(rf[1])
- else:
- fields.append(rf)
-
- skip_grids = False
- needs_spatial = False
- for v in field.validators:
- f = getattr(v, "fields", None)
- if f: fields += f
- if getattr(v, "ghost_zones", 0) > 0:
- skip_grids = True
- if hasattr(v, "ghost_zones"):
- needs_spatial = True
-
- ds = realistic_ds(fields, particle_fields, self.nproc)
-
- # This gives unequal sized grids as well as subgrids
- dd1 = ds.all_data()
- dd2 = ds.all_data()
- sp = get_params(ds)
- dd1.field_parameters.update(sp)
- dd2.field_parameters.update(sp)
- v1 = dd1[self.field_name]
- # No more conversion checking
- assert_equal(v1, dd1[self.field_name])
- if not needs_spatial:
- with field.unit_registry(dd2):
- res = field._function(field, dd2)
- res = dd2.apply_units(res, field.units)
- assert_array_almost_equal_nulp(v1, res, 4)
- if not skip_grids:
- for g in ds.index.grids:
- g.field_parameters.update(sp)
- v1 = g[self.field_name]
- g.clear_data()
- g.field_parameters.update(sp)
- r1 = field._function(field, g)
- if field.particle_type:
- assert_equal(v1.shape[0], g.NumberOfParticles)
- else:
- assert_array_equal(r1.shape, v1.shape)
- for ax in 'xyz':
- assert_array_equal(g[ax].shape, v1.shape)
- with field.unit_registry(g):
- res = field._function(field, g)
- assert_array_equal(v1.shape, res.shape)
- res = g.apply_units(res, field.units)
- assert_array_almost_equal_nulp(v1, res, 4)
-
-def test_all_fields():
- global base_ds
- for field in sorted(base_ds.field_info):
+ for field in sorted(ds.field_info):
if field[1].find("beta_p") > -1:
continue
if field[1].find("vertex") > -1:
# don't test the vertex fields for now
continue
- if field in base_ds.field_list:
+ if field in ds.field_list:
# Don't know how to test this. We need some way of having fields
# that are fallbacks be tested, but we don't have that now.
continue
- for nproc in [1, 4, 8]:
- test_all_fields.__name__ = "%s_%s" % (field, nproc)
- yield TestFieldAccess(field, nproc)
+ for nprocs in [1, 4, 8]:
+ test_all_fields.__name__ = "%s_%s" % (field, nprocs)
+ yield TestFieldAccess(field, datasets[nprocs], nprocs)
def test_add_deposited_particle_field():
# NOT tested: "std", "mesh_id", "nearest" and "simple_smooth"
- global base_ds
+ base_ds = get_base_ds(1)
ad = base_ds.all_data()
# Test "count", "sum" and "cic" method
@@ -231,9 +197,9 @@
assert_almost_equal(ret.sum(), 3824750.912653606)
def test_add_gradient_fields():
- global base_ds
- gfields = base_ds.add_gradient_fields(("gas","density"))
- gfields += base_ds.add_gradient_fields(("index", "ones"))
+ ds = get_base_ds(1)
+ gfields = ds.add_gradient_fields(("gas","density"))
+ gfields += ds.add_gradient_fields(("index", "ones"))
field_list = [('gas', 'density_gradient_x'),
('gas', 'density_gradient_y'),
('gas', 'density_gradient_z'),
@@ -243,7 +209,7 @@
('index', 'ones_gradient_z'),
('index', 'ones_gradient_magnitude')]
assert_equal(gfields, field_list)
- ad = base_ds.all_data()
+ ad = ds.all_data()
for field in field_list:
ret = ad[field]
if field[0] == 'gas':
https://bitbucket.org/yt_analysis/yt/commits/4d8cf2b55c84/
Changeset: 4d8cf2b55c84
Branch: yt
User: ngoldbaum
Date: 2016-10-17 20:59:40+00:00
Summary: Ensure that field errors are raised during testing
Affected #: 2 files
diff -r 9b8b72e70dd2206acd7036fb542e564d28b9dfb7 -r 4d8cf2b55c849d72f8b3d54094fefa12392d7bb2 yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -364,6 +364,10 @@
if field in self._show_field_errors:
raise
if type(e) != YTFieldNotFound:
+ # if we're doing field tests, raise an error
+ # see yt.fields.tests.test_fields
+ if hasattr(self.ds, '_field_test_dataset'):
+ raise
mylog.debug("Raises %s during field %s detection.",
str(type(e)), field)
self.pop(field)
diff -r 9b8b72e70dd2206acd7036fb542e564d28b9dfb7 -r 4d8cf2b55c849d72f8b3d54094fefa12392d7bb2 yt/fields/tests/test_fields.py
--- a/yt/fields/tests/test_fields.py
+++ b/yt/fields/tests/test_fields.py
@@ -139,6 +139,9 @@
omega_matter=ds.omega_matter,
omega_lambda=ds.omega_lambda,
unit_registry=ds.unit_registry)
+ # ensures field errors are raised during testing
+ # see FieldInfoContainer.check_derived_fields
+ ds._field_test_dataset = True
return ds
def test_all_fields():
https://bitbucket.org/yt_analysis/yt/commits/22b844328190/
Changeset: 22b844328190
Branch: yt
User: ngoldbaum
Date: 2016-10-17 21:00:02+00:00
Summary: Fix a number of field detection bugs caught by the previous commit
Affected #: 3 files
diff -r 4d8cf2b55c849d72f8b3d54094fefa12392d7bb2 -r 22b844328190c44735e6e7c01cb28f8f161b2de5 yt/fields/field_detector.py
--- a/yt/fields/field_detector.py
+++ b/yt/fields/field_detector.py
@@ -193,6 +193,7 @@
fp_units = {
'bulk_velocity' : 'cm/s',
+ 'bulk_magnetic_field': 'G',
'center' : 'cm',
'normal' : '',
'cp_x_vec': '',
@@ -207,8 +208,9 @@
if self.field_parameters and param in self.field_parameters:
return self.field_parameters[param]
self.requested_parameters.append(param)
- if param in ['bulk_velocity', 'center', 'normal']:
- return self.ds.arr(np.random.random(3) * 1e-2, self.fp_units[param])
+ if param in ['center', 'normal'] or param.startswith('bulk'):
+ return self.ds.arr(
+ np.random.random(3) * 1e-2, self.fp_units[param])
elif param in ['surface_height']:
return self.ds.quan(0.0, 'code_length')
elif param in ['axis']:
diff -r 4d8cf2b55c849d72f8b3d54094fefa12392d7bb2 -r 22b844328190c44735e6e7c01cb28f8f161b2de5 yt/fields/tests/test_fields.py
--- a/yt/fields/tests/test_fields.py
+++ b/yt/fields/tests/test_fields.py
@@ -31,6 +31,8 @@
registry = ds.unit_registry),
bulk_velocity = YTArray((0.0, 0.0, 0.0),
"cm/s", registry = ds.unit_registry),
+ bulk_magnetic_field = YTArray((0.0, 0.0, 0.0),
+ "G", registry = ds.unit_registry),
normal = YTArray((0.0, 0.0, 1.0),
"", registry = ds.unit_registry),
cp_x_vec = YTArray((1.0, 0.0, 0.0),
@@ -123,7 +125,6 @@
ds = fake_random_ds(
4, fields=fields, units=units, particles=20, nprocs=nprocs)
- ds.index
ds.parameters["HydroMethod"] = "streaming"
ds.parameters["EOSType"] = 1.0
ds.parameters["EOSSoundSpeed"] = 1.0
@@ -142,6 +143,7 @@
# ensures field errors are raised during testing
# see FieldInfoContainer.check_derived_fields
ds._field_test_dataset = True
+ ds.index
return ds
def test_all_fields():
diff -r 4d8cf2b55c849d72f8b3d54094fefa12392d7bb2 -r 22b844328190c44735e6e7c01cb28f8f161b2de5 yt/utilities/lib/misc_utilities.pyx
--- a/yt/utilities/lib/misc_utilities.pyx
+++ b/yt/utilities/lib/misc_utilities.pyx
@@ -752,7 +752,8 @@
if bulk_vector is None:
bv[0] = bv[1] = bv[2] = 0.0
else:
- bulk_vector = bulk_vector.in_units(vxg.units)
+ if hasattr(bulk_vector, 'in_units'):
+ bulk_vector = bulk_vector.in_units(vxg.units)
bv[0] = bulk_vector[0]
bv[1] = bulk_vector[1]
bv[2] = bulk_vector[2]
https://bitbucket.org/yt_analysis/yt/commits/059fcd074326/
Changeset: 059fcd074326
Branch: yt
User: ngoldbaum
Date: 2016-10-17 22:08:15+00:00
Summary: remove unnecessary if __name__ == "__main__" block
Affected #: 1 file
diff -r 22b844328190c44735e6e7c01cb28f8f161b2de5 -r 059fcd0743264cc0ca50c40e9917a231f1efe0c4 yt/fields/tests/test_fields.py
--- a/yt/fields/tests/test_fields.py
+++ b/yt/fields/tests/test_fields.py
@@ -317,12 +317,3 @@
a1 = np.argsort(mi)
a2 = np.argsort(mi2)
assert_array_equal(a1, a2)
-
-if __name__ == "__main__":
- setup()
- for t in test_all_fields():
- t()
- test_add_deposited_particle_field()
- test_add_field_unit_semantics()
- test_array_like_field()
- test_add_field_string()
https://bitbucket.org/yt_analysis/yt/commits/6b0692dca947/
Changeset: 6b0692dca947
Branch: yt
User: xarthisius
Date: 2016-10-28 02:01:12+00:00
Summary: Merged in ngoldbaum/yt (pull request #2420)
[enh] speed up test_fields by avoiding repeatedly running field detection
Affected #: 4 files
diff -r aff20fbf4037f400504edd7d33c88aff92858dbb -r 6b0692dca9476c8f08c1d2abffb2412961d5b269 yt/fields/field_detector.py
--- a/yt/fields/field_detector.py
+++ b/yt/fields/field_detector.py
@@ -193,6 +193,7 @@
fp_units = {
'bulk_velocity' : 'cm/s',
+ 'bulk_magnetic_field': 'G',
'center' : 'cm',
'normal' : '',
'cp_x_vec': '',
@@ -207,8 +208,9 @@
if self.field_parameters and param in self.field_parameters:
return self.field_parameters[param]
self.requested_parameters.append(param)
- if param in ['bulk_velocity', 'center', 'normal']:
- return self.ds.arr(np.random.random(3) * 1e-2, self.fp_units[param])
+ if param in ['center', 'normal'] or param.startswith('bulk'):
+ return self.ds.arr(
+ np.random.random(3) * 1e-2, self.fp_units[param])
elif param in ['surface_height']:
return self.ds.quan(0.0, 'code_length')
elif param in ['axis']:
diff -r aff20fbf4037f400504edd7d33c88aff92858dbb -r 6b0692dca9476c8f08c1d2abffb2412961d5b269 yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -364,6 +364,10 @@
if field in self._show_field_errors:
raise
if type(e) != YTFieldNotFound:
+ # if we're doing field tests, raise an error
+ # see yt.fields.tests.test_fields
+ if hasattr(self.ds, '_field_test_dataset'):
+ raise
mylog.debug("Raises %s during field %s detection.",
str(type(e)), field)
self.pop(field)
diff -r aff20fbf4037f400504edd7d33c88aff92858dbb -r 6b0692dca9476c8f08c1d2abffb2412961d5b269 yt/fields/tests/test_fields.py
--- a/yt/fields/tests/test_fields.py
+++ b/yt/fields/tests/test_fields.py
@@ -24,27 +24,6 @@
YTFieldUnitParseError, \
YTDimensionalityError
-base_ds = None
-
-
-def setup():
- global base_ds
- # Make this super teeny tiny
- fields, units = [], []
-
- for fname, (code_units, aliases, dn) in StreamFieldInfo.known_other_fields:
- fields.append(("gas", fname))
- units.append(code_units)
-
- base_ds = fake_random_ds(4, fields=fields, units=units, particles=20)
-
- base_ds.index
- base_ds.cosmological_simulation = 1
- base_ds.cosmology = Cosmology()
- from yt.config import ytcfg
- ytcfg["yt","__withintesting"] = "True"
- np.seterr(all = 'ignore')
-
def get_params(ds):
return dict(
axis = 0,
@@ -52,6 +31,8 @@
registry = ds.unit_registry),
bulk_velocity = YTArray((0.0, 0.0, 0.0),
"cm/s", registry = ds.unit_registry),
+ bulk_magnetic_field = YTArray((0.0, 0.0, 0.0),
+ "G", registry = ds.unit_registry),
normal = YTArray((0.0, 0.0, 1.0),
"", registry = ds.unit_registry),
cp_x_vec = YTArray((1.0, 0.0, 0.0),
@@ -71,18 +52,79 @@
("gas", "velocity_y"),
("gas", "velocity_z"))
-def realistic_ds(fields, particle_fields, nprocs):
- np.random.seed(int(0x4d3d3d3))
- global base_ds
- units = [base_ds._get_field_info(*f).units for f in fields]
- punits = [base_ds._get_field_info('io', f).units for f in particle_fields]
- fields = [_strip_ftype(f) for f in fields]
+def _strip_ftype(field):
+ if not isinstance(field, tuple):
+ return field
+ elif field[0] in ("all", "io"):
+ return field
+ return field[1]
- ds = fake_random_ds(16, fields=fields, units=units, nprocs=nprocs,
- particle_fields=particle_fields,
- particle_field_units=punits,
- particles=base_ds.stream_handler.particle_count[0][0])
+class TestFieldAccess(object):
+ description = None
+
+ def __init__(self, field_name, ds, nprocs):
+ # Note this should be a field name
+ self.field_name = field_name
+ self.description = "Accessing_%s_%s" % (field_name, nprocs)
+ self.nprocs = nprocs
+ self.ds = ds
+
+ def __call__(self):
+ field = self.ds._get_field_info(*self.field_name)
+ skip_grids = False
+ needs_spatial = False
+ for v in field.validators:
+ if getattr(v, "ghost_zones", 0) > 0:
+ skip_grids = True
+ if hasattr(v, "ghost_zones"):
+ needs_spatial = True
+
+ ds = self.ds
+
+ # This gives unequal sized grids as well as subgrids
+ dd1 = ds.all_data()
+ dd2 = ds.all_data()
+ sp = get_params(ds)
+ dd1.field_parameters.update(sp)
+ dd2.field_parameters.update(sp)
+ with np.errstate(all='ignore'):
+ v1 = dd1[self.field_name]
+ # No more conversion checking
+ assert_equal(v1, dd1[self.field_name])
+ if not needs_spatial:
+ with field.unit_registry(dd2):
+ res = field._function(field, dd2)
+ res = dd2.apply_units(res, field.units)
+ assert_array_almost_equal_nulp(v1, res, 4)
+ if not skip_grids:
+ for g in ds.index.grids:
+ g.field_parameters.update(sp)
+ v1 = g[self.field_name]
+ g.clear_data()
+ g.field_parameters.update(sp)
+ r1 = field._function(field, g)
+ if field.particle_type:
+ assert_equal(v1.shape[0], g.NumberOfParticles)
+ else:
+ assert_array_equal(r1.shape, v1.shape)
+ for ax in 'xyz':
+ assert_array_equal(g[ax].shape, v1.shape)
+ with field.unit_registry(g):
+ res = field._function(field, g)
+ assert_array_equal(v1.shape, res.shape)
+ res = g.apply_units(res, field.units)
+ assert_array_almost_equal_nulp(v1, res, 4)
+
+def get_base_ds(nprocs):
+ fields, units = [], []
+
+ for fname, (code_units, aliases, dn) in StreamFieldInfo.known_other_fields:
+ fields.append(("gas", fname))
+ units.append(code_units)
+
+ ds = fake_random_ds(
+ 4, fields=fields, units=units, particles=20, nprocs=nprocs)
ds.parameters["HydroMethod"] = "streaming"
ds.parameters["EOSType"] = 1.0
ds.parameters["EOSSoundSpeed"] = 1.0
@@ -98,108 +140,37 @@
omega_matter=ds.omega_matter,
omega_lambda=ds.omega_lambda,
unit_registry=ds.unit_registry)
+ # ensures field errors are raised during testing
+ # see FieldInfoContainer.check_derived_fields
+ ds._field_test_dataset = True
+ ds.index
return ds
+
+def test_all_fields():
+ datasets = {}
+
+ for nprocs in [1, 4, 8]:
+ ds = get_base_ds(nprocs)
+ datasets[nprocs] = ds
-def _strip_ftype(field):
- if not isinstance(field, tuple):
- return field
- elif field[0] in ("all", "io"):
- return field
- return field[1]
-
-
-class TestFieldAccess(object):
- description = None
-
- def __init__(self, field_name, nproc):
- # Note this should be a field name
- self.field_name = field_name
- self.description = "Accessing_%s_%s" % (field_name, nproc)
- self.nproc = nproc
-
- def __call__(self):
- global base_ds
- field = base_ds._get_field_info(*self.field_name)
- deps = field.get_dependencies(ds = base_ds)
- requested = deps.requested
- particle_fields = \
- ['particle_position_x', 'particle_position_y', 'particle_position_z',
- 'particle_velocity_x', 'particle_velocity_y', 'particle_velocity_z',
- 'particle_mass']
- fields = list(_base_fields)
-
- for rf in requested:
- if rf[0] == 'io' or rf[0] == 'all':
- if rf not in particle_fields or rf[1] not in particle_fields:
- particle_fields.append(rf[1])
- else:
- fields.append(rf)
-
- skip_grids = False
- needs_spatial = False
- for v in field.validators:
- f = getattr(v, "fields", None)
- if f: fields += f
- if getattr(v, "ghost_zones", 0) > 0:
- skip_grids = True
- if hasattr(v, "ghost_zones"):
- needs_spatial = True
-
- ds = realistic_ds(fields, particle_fields, self.nproc)
-
- # This gives unequal sized grids as well as subgrids
- dd1 = ds.all_data()
- dd2 = ds.all_data()
- sp = get_params(ds)
- dd1.field_parameters.update(sp)
- dd2.field_parameters.update(sp)
- v1 = dd1[self.field_name]
- # No more conversion checking
- assert_equal(v1, dd1[self.field_name])
- if not needs_spatial:
- with field.unit_registry(dd2):
- res = field._function(field, dd2)
- res = dd2.apply_units(res, field.units)
- assert_array_almost_equal_nulp(v1, res, 4)
- if not skip_grids:
- for g in ds.index.grids:
- g.field_parameters.update(sp)
- v1 = g[self.field_name]
- g.clear_data()
- g.field_parameters.update(sp)
- r1 = field._function(field, g)
- if field.particle_type:
- assert_equal(v1.shape[0], g.NumberOfParticles)
- else:
- assert_array_equal(r1.shape, v1.shape)
- for ax in 'xyz':
- assert_array_equal(g[ax].shape, v1.shape)
- with field.unit_registry(g):
- res = field._function(field, g)
- assert_array_equal(v1.shape, res.shape)
- res = g.apply_units(res, field.units)
- assert_array_almost_equal_nulp(v1, res, 4)
-
-def test_all_fields():
- global base_ds
- for field in sorted(base_ds.field_info):
+ for field in sorted(ds.field_info):
if field[1].find("beta_p") > -1:
continue
if field[1].find("vertex") > -1:
# don't test the vertex fields for now
continue
- if field in base_ds.field_list:
+ if field in ds.field_list:
# Don't know how to test this. We need some way of having fields
# that are fallbacks be tested, but we don't have that now.
continue
- for nproc in [1, 4, 8]:
- test_all_fields.__name__ = "%s_%s" % (field, nproc)
- yield TestFieldAccess(field, nproc)
+ for nprocs in [1, 4, 8]:
+ test_all_fields.__name__ = "%s_%s" % (field, nprocs)
+ yield TestFieldAccess(field, datasets[nprocs], nprocs)
def test_add_deposited_particle_field():
# NOT tested: "std", "mesh_id", "nearest" and "simple_smooth"
- global base_ds
+ base_ds = get_base_ds(1)
ad = base_ds.all_data()
# Test "count", "sum" and "cic" method
@@ -231,9 +202,9 @@
assert_almost_equal(ret.sum(), 3824750.912653606)
def test_add_gradient_fields():
- global base_ds
- gfields = base_ds.add_gradient_fields(("gas","density"))
- gfields += base_ds.add_gradient_fields(("index", "ones"))
+ ds = get_base_ds(1)
+ gfields = ds.add_gradient_fields(("gas","density"))
+ gfields += ds.add_gradient_fields(("index", "ones"))
field_list = [('gas', 'density_gradient_x'),
('gas', 'density_gradient_y'),
('gas', 'density_gradient_z'),
@@ -243,7 +214,7 @@
('index', 'ones_gradient_z'),
('index', 'ones_gradient_magnitude')]
assert_equal(gfields, field_list)
- ad = base_ds.all_data()
+ ad = ds.all_data()
for field in field_list:
ret = ad[field]
if field[0] == 'gas':
@@ -346,12 +317,3 @@
a1 = np.argsort(mi)
a2 = np.argsort(mi2)
assert_array_equal(a1, a2)
-
-if __name__ == "__main__":
- setup()
- for t in test_all_fields():
- t()
- test_add_deposited_particle_field()
- test_add_field_unit_semantics()
- test_array_like_field()
- test_add_field_string()
diff -r aff20fbf4037f400504edd7d33c88aff92858dbb -r 6b0692dca9476c8f08c1d2abffb2412961d5b269 yt/utilities/lib/misc_utilities.pyx
--- a/yt/utilities/lib/misc_utilities.pyx
+++ b/yt/utilities/lib/misc_utilities.pyx
@@ -764,7 +764,8 @@
if bulk_vector is None:
bv[0] = bv[1] = bv[2] = 0.0
else:
- bulk_vector = bulk_vector.in_units(vxg.units)
+ if hasattr(bulk_vector, 'in_units'):
+ bulk_vector = bulk_vector.in_units(vxg.units)
bv[0] = bulk_vector[0]
bv[1] = bulk_vector[1]
bv[2] = bulk_vector[2]
Repository URL: https://bitbucket.org/yt_analysis/yt/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list