def test_active(): """ test that mover must be both active and on to get movement """ time_step = 15 * 60 # seconds start_pos = (3., 6., 0.) rel_time = datetime(2012, 8, 20, 13) # yyyy/month/day/hr/min/sec sc = sample_sc_release(5, start_pos, rel_time) # value is given as (r,theta) time_val = np.zeros((1, ), dtype=datetime_value_2d) time_val['time'] = np.datetime64(rel_time.isoformat()) time_val['value'] = (2., 25.) wm = WindMover(environment.Wind(timeseries=time_val, units='meter per second'), on=False) wm.prepare_for_model_run() wm.prepare_for_model_step(sc, time_step, rel_time) delta = wm.get_move(sc, time_step, rel_time) wm.model_step_is_done() assert wm.active == False assert np.all(delta == 0) # model_time + time_step = active_start
def test_active(): """ test that mover must be both active and on to get movement """ time_step = 15 * 60 # seconds start_pos = (3., 6., 0.) rel_time = datetime(2012, 8, 20, 13) # yyyy/month/day/hr/min/sec sc = sample_sc_release(5, start_pos, rel_time) # value is given as (r,theta) time_val = np.zeros((1, ), dtype=datetime_value_2d) time_val['time'] = rel_time time_val['value'] = (2., 25.) wm = WindMover(Wind(timeseries=time_val, units='meter per second'), on=False) wm.prepare_for_model_run() wm.prepare_for_model_step(sc, time_step, rel_time) delta = wm.get_move(sc, time_step, rel_time) wm.model_step_is_done() assert wm.active is False assert np.all(delta == 0) # model_time + time_step = active_start
def test_timespan(): """ Ensure the active flag is being set correctly and checked, such that if active=False, the delta produced by get_move = 0 """ time_step = 15 * 60 # seconds start_pos = (3., 6., 0.) rel_time = datetime(2012, 8, 20, 13) # yyyy/month/day/hr/min/sec sc = sample_sc_release(5, start_pos, rel_time) # value is given as (r,theta) model_time = rel_time time_val = np.zeros((1, ), dtype=datetime_value_2d) time_val['time'] = rel_time time_val['value'] = (2., 25.) wm = WindMover(Wind(timeseries=time_val, units='meter per second'), active_range=(model_time + timedelta(seconds=time_step), InfDateTime('inf'))) wm.prepare_for_model_run() wm.prepare_for_model_step(sc, time_step, model_time) delta = wm.get_move(sc, time_step, model_time) wm.model_step_is_done() assert wm.active is False assert np.all(delta == 0) # model_time + time_step = active_start wm.active_range = (model_time - timedelta(seconds=time_step / 2), InfDateTime('inf')) wm.prepare_for_model_step(sc, time_step, model_time) delta = wm.get_move(sc, time_step, model_time) wm.model_step_is_done() assert wm.active is True print '''\ntest_timespan delta \n{0}'''.format(delta) assert np.all(delta[:, :2] != 0) # model_time + time_step > active_start