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'])
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
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)
#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 """
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())))