示例#1
0
def test_initialize_InitRiseVelFromDist_uniform():
    'Test initialize data_arrays with uniform dist'
    data_arrays = mock_append_data_arrays(rise_vel_array, num_elems)

    fcn = InitRiseVelFromDist(distribution=UniformDistribution())
    fcn.initialize(num_elems, None, data_arrays)

    assert_dataarray_shape_size(rise_vel_array, data_arrays, num_elems)

    assert np.all(0 != data_arrays['rise_vel'])
    assert np.all(data_arrays['rise_vel'] <= 1)
    assert np.all(data_arrays['rise_vel'] >= 0)
def test_initialize_InitRiseVelFromDist_uniform():
    'Test initialize data_arrays with uniform dist'
    data_arrays = mock_append_data_arrays(rise_vel_array, num_elems)

    fcn = InitRiseVelFromDist()
    fcn.initialize(num_elems, None, data_arrays)

    assert_dataarray_shape_size(rise_vel_array, data_arrays, num_elems)

    assert np.all(0 != data_arrays['rise_vel'])
    assert np.all(data_arrays['rise_vel'] <= 1)
    assert np.all(data_arrays['rise_vel'] >= 0)
def test_initialize_InitRiseVelFromDist_normal():
    """
    test initialize data_arrays with normal dist
    assume normal distribution works fine - so statistics (mean, var) are not
    tested
    """
    num_elems = 1000
    data_arrays = mock_append_data_arrays(rise_vel_array, num_elems)

    dist = NormalDistribution(mean=0, sigma=0.1)
    fcn = InitRiseVelFromDist(distribution=dist)
    fcn.initialize(num_elems, None, data_arrays)

    assert_dataarray_shape_size(rise_vel_array, data_arrays, num_elems)

    assert np.all(0 != data_arrays['rise_vel'])
示例#4
0
def test_initialize_InitRiseVelFromDist_normal():
    """
    test initialize data_arrays with normal dist
    assume normal distribution works fine - so statistics (mean, var) are not
    tested
    """
    num_elems = 1000
    data_arrays = mock_append_data_arrays(rise_vel_array, num_elems)

    dist = NormalDistribution(mean=0, sigma=0.1)
    fcn = InitRiseVelFromDist(distribution=dist)
    fcn.initialize(num_elems, None, data_arrays)

    assert_dataarray_shape_size(rise_vel_array, data_arrays, num_elems)

    assert np.all(0 != data_arrays['rise_vel'])
示例#5
0
def test_ordered_collection_api():
    release_time = datetime(2012, 1, 1, 12)
    start_position = (23.0, -78.5, 0.0)
    num_elements = 100

    sc = SpillContainer()
    sc.spills += point_line_release_spill(num_elements, start_position,
                                          release_time)
    assert len(sc.spills) == 1


""" tests w/ element types set for two spills """
el0 = ElementType([
    InitWindages((0.02, 0.02), -1),
    InitRiseVelFromDist(distribution=UniformDistribution(low=1, high=10))
],
                  substance=test_oil)

el1 = ElementType([InitWindages(), InitRiseVelFromDist()], substance=test_oil)

arr_types = {'windages', 'windage_range', 'windage_persist', 'rise_vel'}


@pytest.mark.parametrize(("elem_type", "arr_types"), [((el0, el1), arr_types)])
def test_element_types(elem_type, arr_types, sample_sc_no_uncertainty):
    """
    Tests that the spill_container's data_arrays associated with initializers
    are correctly setup for each spill
    uses sample_sc_no_uncertainty fixture defined in conftest.py
    """
def test_ordered_collection_api():
    release_time = datetime(2012, 1, 1, 12)
    start_position = (23.0, -78.5, 0.0)
    num_elements = 100

    sc = SpillContainer()
    sc.spills += point_line_release_spill(num_elements, start_position,
                                          release_time)
    assert len(sc.spills) == 1


""" tests w/ element types set for two spills """
el0 = ElementType([
    InitWindages((0.02, 0.02), -1),
    InitRiseVelFromDist(distribution=UniformDistribution(low=1, high=10))
],
                  substance=test_oil)

el1 = ElementType(
    [InitWindages(),
     InitRiseVelFromDist(distribution=UniformDistribution())],
    substance=test_oil)

arr_types = {'windages', 'windage_range', 'windage_persist', 'rise_vel'}


@pytest.mark.parametrize(("elem_type", "arr_types"), [((el0, el1), arr_types)])
def test_element_types(elem_type, arr_types, sample_sc_no_uncertainty):
    """
    Tests that the spill_container's data_arrays associated with initializers
示例#7
0
rise_vel_diameter_array = mock_sc_array_types(['rise_vel',
                                               'droplet_diameter'])

num_elems = 10
oil = test_oil


def assert_dataarray_shape_size(arr_types, data_arrays, num_released):
    for key, val in arr_types.iteritems():
        assert data_arrays[key].dtype == val.dtype
        assert data_arrays[key].shape == (num_released,) + val.shape


""" Initializers - following are used for parameterizing tests """
fcn_list = (InitWindages(),
            InitRiseVelFromDist(distribution=UniformDistribution()),
            InitRiseVelFromDist(distribution=NormalDistribution(mean=0,
                                                                sigma=0.1)),
            InitRiseVelFromDist(distribution=LogNormalDistribution(mean=0,
                                                                   sigma=0.1)),
            InitRiseVelFromDist(distribution=WeibullDistribution(alpha=1.8,
                                                                 lambda_=(1 / (.693 ** (1 / 1.8)))
                                                                 )),
            InitRiseVelFromDropletSizeFromDist(NormalDistribution(mean=0,
                                                                  sigma=0.1))
            )

arrays_ = (windages,
           rise_vel_array, rise_vel_array, rise_vel_array, rise_vel_array,
           rise_vel_diameter_array)
示例#8
0
    #r.water_density = 1
    #r.water_viscosity = 1.1e-6

    #assert r.water_density == 1
    #assert r.water_viscosity == 1.1e-6


time_step = 15 * 60  # seconds
rel_time = datetime(2012, 8, 20, 13)  # yyyy/month/day/hr/min/sec
sc = sample_sc_release(
    5, (3., 6., 0.),
    rel_time,
    uncertain=False,
    arr_types={'rise_vel'},
    element_type=ElementType(
        [InitRiseVelFromDist(distribution=UniformDistribution())]))
u_sc = sample_sc_release(
    5, (3., 6., 0.),
    rel_time,
    uncertain=True,
    arr_types={'rise_vel'},
    element_type=ElementType(
        [InitRiseVelFromDist(distribution=UniformDistribution())]))
model_time = rel_time


@pytest.mark.parametrize("test_sc", [sc, u_sc])
def test_one_move(test_sc):
    """
    calls one step for movement - just checks that it doesn't fail for any step
    Placeholder - get_move does not currently work since all data_arrays are
    r = RiseVelocityMover()
    #r.water_density = 1
    #r.water_viscosity = 1.1e-6

    #assert r.water_density == 1
    #assert r.water_viscosity == 1.1e-6


time_step = 15 * 60  # seconds
rel_time = datetime(2012, 8, 20, 13)  # yyyy/month/day/hr/min/sec
sc = sample_sc_release(5, (3., 6., 0.),
                       rel_time,
                       uncertain=False,
                       arr_types={'rise_vel'},
                       element_type=ElementType([InitRiseVelFromDist()]))
u_sc = sample_sc_release(5, (3., 6., 0.),
                         rel_time,
                         uncertain=True,
                         arr_types={'rise_vel'},
                         element_type=ElementType([InitRiseVelFromDist()]))
model_time = rel_time


@pytest.mark.parametrize("test_sc", [sc, u_sc])
def test_one_move(test_sc):
    """
    calls one step for movement - just checks that it doesn't fail for any step
    Placeholder - get_move does not currently work since all data_arrays are
    not yet defined
    """
示例#10
0
mass_array = mock_sc_array_types(['mass'])
rise_vel_array = mock_sc_array_types(['rise_vel'])
rise_vel_diameter_array = mock_sc_array_types(['rise_vel', 'droplet_diameter'])

num_elems = 10
oil = test_oil


def assert_dataarray_shape_size(arr_types, data_arrays, num_released):
    for key, val in arr_types.iteritems():
        assert data_arrays[key].dtype == val.dtype
        assert data_arrays[key].shape == (num_released, ) + val.shape


""" Initializers - following are used for parameterizing tests """
fcn_list = (InitWindages(), InitRiseVelFromDist(),
            InitRiseVelFromDist(
                distribution=NormalDistribution(mean=0, sigma=0.1)),
            InitRiseVelFromDist(
                distribution=LogNormalDistribution(mean=0, sigma=0.1)),
            InitRiseVelFromDist(distribution=WeibullDistribution(
                alpha=1.8, lambda_=(1 / (.693**(1 / 1.8))))),
            InitRiseVelFromDropletSizeFromDist(
                NormalDistribution(mean=0, sigma=0.1)))

arrays_ = (windages, rise_vel_array, rise_vel_array, rise_vel_array,
           rise_vel_array, rise_vel_diameter_array)

spill_list = (None, None, None, None, None, Spill(Release(datetime.now())))