Пример #1
0
 def __init__(self,
              latitude: float = None,
              longitude: float = None,
              location_name: str = "",
              **kwargs):
     self.latitude = latitude
     self.longitude = longitude
     self.location_name = location_name
     DBSensor.__init__(self, **kwargs)
def time_slot_sensor(db):
    """Define sensor for time slot events."""
    sensor = DBSensor(name="TimeSlot15MinSensor",
                      event_resolution=timedelta(minutes=15))
    session.add(sensor)
    session.flush()
    return sensor
def ex_post_time_slot_sensor(db):
    """Define sensor for time slot events known in advance (ex post)."""
    sensor = DBSensor(
        name="ExPostSensor",
        event_resolution=timedelta(minutes=15),
        knowledge_horizon=(
            timedelta_x_days_ago_at_y_oclock,
            dict(x=1, y=12, z="Europe/Amsterdam"),
        ),
    )
    session.add(sensor)
    session.flush()
    return sensor
def multiple_day_ahead_beliefs_about_ex_post_time_slot_event(
        ex_post_time_slot_sensor: DBSensor, test_source_a: DBBeliefSource):
    """Define multiple day-ahead beliefs about an ex post time slot event."""
    n = 10
    event_start = datetime(2025, 1, 2, 22, 45, tzinfo=utc)
    beliefs = []
    for i in range(n):
        belief = DBTimedBelief(
            source=test_source_a,
            sensor=ex_post_time_slot_sensor,
            value=10 + i,
            belief_time=ex_post_time_slot_sensor.knowledge_time(event_start) -
            timedelta(hours=i + 1),
            event_start=event_start,
        )
        session.add(belief)
        beliefs.append(belief)
    return beliefs
def instantaneous_sensor(db):
    """Define sensor for instantaneous events."""
    sensor = DBSensor(name="InstantaneousSensor")
    session.add(sensor)
    session.flush()
    return sensor
def test_ex_post_time_slot_sensor(ex_post_time_slot_sensor: DBSensor):
    event_start = datetime(2018, 1, 1, 15, tzinfo=utc)
    assert ex_post_time_slot_sensor.knowledge_time(event_start) < event_start
def test_time_slot_sensor(time_slot_sensor: DBSensor):
    assert time_slot_sensor.event_resolution == timedelta(minutes=15)
    event_start = datetime(2018, 1, 1, 15, tzinfo=utc)
    event_end = event_start + time_slot_sensor.event_resolution
    assert time_slot_sensor.knowledge_time(event_start) == event_end