本文整理汇总了Python中gnome.spill_container.SpillContainer.uncertain_copy方法的典型用法代码示例。如果您正苦于以下问题:Python SpillContainer.uncertain_copy方法的具体用法?Python SpillContainer.uncertain_copy怎么用?Python SpillContainer.uncertain_copy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gnome.spill_container.SpillContainer
的用法示例。
在下文中一共展示了SpillContainer.uncertain_copy方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_uncertain_copy
# 需要导入模块: from gnome.spill_container import SpillContainer [as 别名]
# 或者: from gnome.spill_container.SpillContainer import uncertain_copy [as 别名]
def test_uncertain_copy():
"""
test whether creating an uncertain copy of a spill_container works
"""
release_time = datetime(2012, 1, 1, 12)
start_time2 = datetime(2012, 1, 2, 12)
start_position = (23.0, -78.5, 0.0)
start_position2 = (45.0, 75.0, 0.0)
num_elements = 100
sc = SpillContainer()
spill = point_line_release_spill(num_elements, start_position,
release_time)
sp2 = point_line_release_spill(num_elements, start_position2,
start_time2)
sc.spills.add(spill)
sc.spills.add(sp2)
u_sc = sc.uncertain_copy()
assert u_sc.uncertain
assert len(sc.spills) == len(u_sc.spills)
# make sure they aren't references to the same spills
assert sc.spills[spill.id] not in u_sc.spills
assert sc.spills[sp2.id] not in u_sc.spills
# make sure they have unique ids:
for id1 in [s.id for s in sc.spills]:
for id2 in [s.id for s in u_sc.spills]:
print id1, id2
assert not id1 == id2
# do the spills work?
sc.prepare_for_model_run(windage_at)
sc.release_elements(100, release_time)
assert sc['positions'].shape == (num_elements, 3)
assert sc['last_water_positions'].shape == (num_elements, 3)
# now release second set:
u_sc.prepare_for_model_run(windage_at)
assert u_sc['positions'].shape[0] == 0 # nothing released yet.
u_sc.release_elements(100, release_time)
# elements should be there.
assert u_sc['positions'].shape == (num_elements, 3)
assert u_sc['last_water_positions'].shape == (num_elements, 3)
# next release:
sc.release_elements(100, release_time + timedelta(hours=24))
assert sc['positions'].shape == (num_elements * 2, 3)
assert sc['last_water_positions'].shape == (num_elements * 2, 3)
# second set should not have changed
assert u_sc['positions'].shape == (num_elements, 3)
assert u_sc['last_water_positions'].shape == (num_elements, 3)
# release second set
u_sc.release_elements(100, release_time + timedelta(hours=24))
assert u_sc['positions'].shape == (num_elements * 2, 3)
assert u_sc['last_water_positions'].shape == (num_elements * 2, 3)