def test_sensor_pair_equality(self): sensor_1 = Sensor('atsr.3', Period((2007, 1, 1), (2008, 1, 1))) sensor_2 = Sensor('atsr.2', Period((2007, 7, 1), (2008, 7, 1))) sensor_pair_1 = SensorPair(sensor_1, sensor_2) sensor_pair_2 = SensorPair(sensor_2, sensor_1) self.assertTrue(sensor_pair_1 == sensor_pair_2)
def test_sensor_pair_construction(self): sensor_1 = Sensor('atsr.3', Period((2007, 1, 1), (2008, 1, 1))) sensor_2 = Sensor('atsr.2', Period((2007, 7, 1), (2008, 7, 1))) sensor_3 = Sensor('atsr.1', Period((2008, 1, 1), (2009, 1, 1))) sensor_pair = SensorPair(sensor_1, sensor_2) self.assertEqual('atsr.3', sensor_pair.get_primary_name()) self.assertEqual('atsr.2', sensor_pair.get_secondary_name()) self.assertEqual(Period((2007, 7, 1), (2008, 1, 1)), sensor_pair.get_period()) sensor_pair = SensorPair(sensor_3, sensor_2) self.assertEqual('atsr.1', sensor_pair.get_primary_name()) self.assertEqual('atsr.2', sensor_pair.get_secondary_name()) self.assertEqual(Period((2008, 1, 1), (2008, 7, 1)), sensor_pair.get_period()) try: SensorPair(sensor_1, sensor_3) self.fail() except exceptions.ValueError: pass try: SensorPair(sensor_3, sensor_1) except exceptions.ValueError: pass
def test_sensor_ge(self): sensor_1 = Sensor('atsr.3', Period((2007, 1, 1), (2008, 1, 1))) sensor_2 = Sensor('atsr.2', Period((2008, 1, 1), (2009, 1, 1))) self.assertTrue(sensor_1 >= sensor_2) sensor_3 = Sensor('atsr.2', Period((2009, 1, 1), (2010, 1, 1))) self.assertTrue(sensor_2 >= sensor_3) self.assertTrue(sensor_3 >= sensor_2)
def test_sensor_pair_ge(self): sensor_1 = Sensor('atsr.3', Period((2007, 1, 1), (2008, 1, 1))) sensor_2 = Sensor('atsr.2', Period((2007, 7, 1), (2008, 7, 1))) sensor_3 = Sensor('atsr.1', Period((2007, 10, 1), (2008, 10, 1))) sensor_pair_1 = SensorPair(sensor_1, sensor_2) sensor_pair_2 = SensorPair(sensor_2, sensor_3) sensor_pair_3 = SensorPair(sensor_1, sensor_3) self.assertTrue(sensor_pair_1 >= sensor_pair_2) self.assertTrue(sensor_pair_1 >= sensor_pair_3)
def add_sensor(self, name, start_date, end_date): """ :type name: str """ period = Period(start_date, end_date) for sensor in self._get_sensors(): if sensor.get_name() == name and sensor.get_period( ).is_intersecting(period): raise exceptions.ValueError, "Periods of sensor '" + name + "' must not intersect." self.sensors.add(Sensor(name, period))
def _get_sensors_by_period(self): """ :rtype : list """ multi_periods = dict() for sensor in self._get_sensors(): sensor_name = sensor.get_name() period = sensor.get_period() SvrWorkflow.__add_period(multi_periods, sensor_name, period) sensors = list() for name in sorted(multi_periods.keys()): for period in multi_periods[name].get_periods(): sensors.append(Sensor(name, period)) return sensors
def test_get_sensor_period(self): sensor = Sensor('atsr.3', Period((2007, 1, 1), (2008, 1, 1))) self.assertEqual('2007-01-01', sensor.get_period().get_start_date().isoformat()) self.assertEqual('2008-01-01', sensor.get_period().get_end_date().isoformat())
def test_get_sensor_name(self): sensor = Sensor('atsr.3', Period((2007, 1, 1), (2008, 1, 1))) self.assertEqual('atsr.3', sensor.get_name())
def test_sensor_inequality(self): sensor_1 = Sensor('atsr.3', Period((2007, 1, 1), (2008, 1, 1))) sensor_2 = Sensor('atsr.2', Period((2007, 1, 1), (2008, 1, 1))) sensor_3 = Sensor('atsr.3', Period((2008, 1, 1), (2009, 1, 1))) self.assertTrue(sensor_1 != sensor_2) self.assertTrue(sensor_1 != sensor_3)