Esempio n. 1
0
    def test305(self):
        'TimeSeries.as_dict reads from django QuerySet'

        DT = datetime
        testdata = django.QuerySet([
            {
                'location':
                '123',
                'parameter':
                'Q',
                'events': [(DT(2011, 11, 11, 12, 20), 1.1, 8, ''),
                           (DT(2011, 11, 11, 12, 25), 1.2, 1, ''),
                           (DT(2011, 11, 11, 12, 30), 1.3, 2, '')]
            },
            {
                'location':
                '124',
                'parameter':
                'Q',
                'events': [(DT(2011, 11, 11, 12, 20), 0.1, 8, ''),
                           (DT(2011, 11, 11, 12, 25), 0.2, 1, ''),
                           (DT(2011, 11, 11, 12, 30), 0.3, 2, '')]
            },
        ])
        obj = TimeSeries.as_dict(testdata)
        self.assertEquals(set([('123', 'Q'), ('124', 'Q')]), set(obj.keys()))
        self.assertEquals(
            set([1.1, 1.2, 1.3]),
            set(i[0] for i in obj[('123', 'Q')]._events.values()))
        self.assertEquals(
            set([0.1, 0.2, 0.3]),
            set(i[0] for i in obj[('124', 'Q')]._events.values()))
        self.assertEquals([], testdata.filtered)
Esempio n. 2
0
    def test354(self):
        'TimeSeries.as_dict filters based on timestamps from django QuerySet'

        DT = datetime
        testdata = django.QuerySet([
            {
                'location':
                '124',
                'parameter':
                'Q',
                'events': [(DT(2011, 11, 11, 12, 20), 0.1, 8, ''),
                           (DT(2011, 11, 11, 12, 25), 0.2, 1, ''),
                           (DT(2011, 11, 11, 12, 30), 0.3, 2, '')]
            },
        ])
        start = DT(2011, 11, 11, 12, 25)
        end = DT(2011, 11, 11, 12, 25)
        obj = TimeSeries.as_dict(testdata, start, end)
        self.assertEquals(set([('124', 'Q')]), set(obj.keys()))
        self.assertEquals([
            ((), {
                'timestamp__gte': start
            }),
            ((), {
                'timestamp__lte': end
            }),
        ], testdata.filtered)
Esempio n. 3
0
def test_write_dict_to_pi_file():
    """Test to write a dict of TimeseriesStub-like objects to a PI XML file."""
    dict_series =\
        {"precipitation": SparseTimeseriesStub(datetime(2011, 10, 25), [10.0, 20.0, 30.0]),
         "seepage": SparseTimeseriesStub(datetime(2011, 10, 25), [40.0, 50.0, 60.0]),
         }

    testdata = pkg_resources.resource_filename("timeseries", "testdata/")
    filename = "open-water-incoming-flows.xml"
    filepath = os.path.join(testdata, filename)
    if filename in os.listdir(testdata):
        os.remove(filepath)

    write_to_pi_file(location_id="SAP",
                     filename=filepath,
                     timeseries=dict_series)

    obj = TimeSeries.as_dict(filepath)

    if filename in os.listdir(testdata):
        os.remove(filepath)

    for parameter_id, series in dict_series.iteritems():
        stored_events = [(e[0], e[1][0])
                         for e in obj[("SAP", parameter_id)].get_events()]
        assert stored_events == list(series.events())
Esempio n. 4
0
 def test010(self):
     '''result of TimeSeries.as_dict is indexed on locationId
     parameterId 2-tuples'''
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     self.assertEquals(set([("600", "P1201"), ("600", "P2504")]),
                       set(obj.keys()))
     self.assertTrue(isinstance(obj[("600", "P1201")], TimeSeries))
     self.assertTrue(isinstance(obj[("600", "P2504")], TimeSeries))
Esempio n. 5
0
 def test010(self):
     '''result of TimeSeries.as_dict is indexed on locationId
     parameterId 2-tuples'''
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     self.assertEquals(set([("600", "P1201"), ("600", "P2504")]),
                       set(obj.keys()))
     self.assertTrue(isinstance(obj[("600", "P1201")], TimeSeries))
     self.assertTrue(isinstance(obj[("600", "P2504")], TimeSeries))
Esempio n. 6
0
 def test024(self):
     'TimeSeries.write_to_pi_file writes dict to stream with 12 offset'
     stream = mock.Stream()
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     TimeSeries.write_to_pi_file(stream, obj, offset=12)
     target = file(self.testdata + "targetOutput12.xml").read()
     current = ''.join(stream.content)
     self.assertEquals(target.strip(), current.strip())
Esempio n. 7
0
 def test024(self):
     'TimeSeries.write_to_pi_file writes dict to stream with 12 offset'
     stream = mock.Stream()
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     TimeSeries.write_to_pi_file(stream, obj, offset=12)
     target = file(self.testdata + "targetOutput12.xml").read()
     current = ''.join(stream.content)
     self.assertEquals(target.strip(), current.strip())
Esempio n. 8
0
 def test030(self):
     'TimeSeries.write_to_pi_file appends children to stream'
     stream = mock.Stream()
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     TimeSeries.write_to_pi_file(stream, obj, offset=0, append=True)
     target_lines = file(self.testdata + "targetOutput00.xml").readlines()[3:-1]
     target = ''.join(i.strip() for i in target_lines)
     current = ''.join(i.strip() for i in ''.join(stream.content).split('\n'))
     self.assertEquals(target, current)
Esempio n. 9
0
 def test111(self):
     'TimeSeries.as_dict reads events of series (b)'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     ts = obj[("600", "P2504")]
     self.assertEquals([
             (str_to_datetime("2010-04-05", "00:00:00", 2), 17),
             (str_to_datetime("2010-04-08", "00:00:00", 2), 22),
             (str_to_datetime("2010-04-10", "00:00:00", 2), 24), ],
                       ts.get_values())
Esempio n. 10
0
 def test111(self):
     'TimeSeries.as_dict reads events of series (b)'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     ts = obj[("600", "P2504")]
     self.assertEquals([
         (str_to_datetime("2010-04-05", "00:00:00", 2), 17),
         (str_to_datetime("2010-04-08", "00:00:00", 2), 22),
         (str_to_datetime("2010-04-10", "00:00:00", 2), 24),
     ], ts.get_values())
Esempio n. 11
0
 def test113(self):
     'TimeSeries.get_values with only requested timeseries'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     ts = obj[("600", "P2504")]
     dates = [str_to_datetime("2010-04-05", "00:00:00", 2),
              str_to_datetime("2010-04-10", "00:00:00", 2)]
     self.assertEquals([
             (str_to_datetime("2010-04-05", "00:00:00", 2), (17, 0, '')),
             (str_to_datetime("2010-04-10", "00:00:00", 2), (24, 0, '')), ],
                       ts.get_events(dates=dates))
Esempio n. 12
0
 def test030(self):
     'TimeSeries.write_to_pi_file appends children to stream'
     stream = mock.Stream()
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     TimeSeries.write_to_pi_file(stream, obj, offset=0, append=True)
     target_lines = file(self.testdata +
                         "targetOutput00.xml").readlines()[3:-1]
     target = ''.join(i.strip() for i in target_lines)
     current = ''.join(i.strip()
                       for i in ''.join(stream.content).split('\n'))
     self.assertEquals(target, current)
Esempio n. 13
0
 def test113(self):
     'TimeSeries.get_values with only requested timeseries'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     ts = obj[("600", "P2504")]
     dates = [
         str_to_datetime("2010-04-05", "00:00:00", 2),
         str_to_datetime("2010-04-10", "00:00:00", 2)
     ]
     self.assertEquals([
         (str_to_datetime("2010-04-05", "00:00:00", 2), (17, 0, '')),
         (str_to_datetime("2010-04-10", "00:00:00", 2), (24, 0, '')),
     ], ts.get_events(dates=dates))
Esempio n. 14
0
    def test352(self):
        'TimeSeries.as_dict filters based on timestamps from django QuerySet'

        DT = datetime
        testdata = django.QuerySet([
                {'location': '124',
                 'parameter': 'Q',
                 'events': [(DT(2011, 11, 11, 12, 20), 0.1, 8, ''),
                            (DT(2011, 11, 11, 12, 25), 0.2, 1, ''),
                            (DT(2011, 11, 11, 12, 30), 0.3, 2, '')]},
                ])
        end = DT(2011, 11, 11, 12, 25)
        obj = TimeSeries.as_dict(testdata, end=end)
        self.assertEquals(set([('124', 'Q')]), set(obj.keys()))
        self.assertEquals([((), {'timestamp__lte': end})], testdata.filtered)
Esempio n. 15
0
 def test100(self):
     'TimeSeries.as_dict reads events of series (a)'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     ts = obj[("600", "P1201")]
     self.assertEquals([
         (str_to_datetime("2010-04-03", "00:00:00", 2), (20, 0, '')),
         (str_to_datetime("2010-04-04", "00:00:00", 2), (22, 0, '')),
         (str_to_datetime("2010-04-05", "00:00:00", 2), (17, 0, '')),
         (str_to_datetime("2010-04-06", "00:00:00", 2), (20, 0, '')),
         (str_to_datetime("2010-04-07", "00:00:00", 2), (21, 0, '')),
         (str_to_datetime("2010-04-08", "00:00:00", 2), (22, 0, '')),
         (str_to_datetime("2010-04-09", "00:00:00", 2), (24, 0, '')),
         (str_to_datetime("2010-04-10", "00:00:00", 2), (24, 0, '')),
         (str_to_datetime("2010-04-11", "00:00:00", 2), (24, 0, '')),
         (str_to_datetime("2010-04-12", "00:00:00", 2), (22, 0, '')),
     ], ts.get_events())
Esempio n. 16
0
 def test110(self):
     'TimeSeries.as_dict reads events of series (a)'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     ts = obj[("600", "P1201")]
     self.assertEquals([
             (str_to_datetime("2010-04-03", "00:00:00", 2), 20),
             (str_to_datetime("2010-04-04", "00:00:00", 2), 22),
             (str_to_datetime("2010-04-05", "00:00:00", 2), 17),
             (str_to_datetime("2010-04-06", "00:00:00", 2), 20),
             (str_to_datetime("2010-04-07", "00:00:00", 2), 21),
             (str_to_datetime("2010-04-08", "00:00:00", 2), 22),
             (str_to_datetime("2010-04-09", "00:00:00", 2), 24),
             (str_to_datetime("2010-04-10", "00:00:00", 2), 24),
             (str_to_datetime("2010-04-11", "00:00:00", 2), 24),
             (str_to_datetime("2010-04-12", "00:00:00", 2), 22), ],
                       ts.get_values())
Esempio n. 17
0
 def test100(self):
     'TimeSeries.as_dict reads events of series (a)'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     ts = obj[("600", "P1201")]
     self.assertEquals([
             (str_to_datetime("2010-04-03", "00:00:00", 2), (20, 0, '')),
             (str_to_datetime("2010-04-04", "00:00:00", 2), (22, 0, '')),
             (str_to_datetime("2010-04-05", "00:00:00", 2), (17, 0, '')),
             (str_to_datetime("2010-04-06", "00:00:00", 2), (20, 0, '')),
             (str_to_datetime("2010-04-07", "00:00:00", 2), (21, 0, '')),
             (str_to_datetime("2010-04-08", "00:00:00", 2), (22, 0, '')),
             (str_to_datetime("2010-04-09", "00:00:00", 2), (24, 0, '')),
             (str_to_datetime("2010-04-10", "00:00:00", 2), (24, 0, '')),
             (str_to_datetime("2010-04-11", "00:00:00", 2), (24, 0, '')),
             (str_to_datetime("2010-04-12", "00:00:00", 2), (22, 0, '')), ],
                       ts.get_events())
Esempio n. 18
0
 def test110(self):
     'TimeSeries.as_dict reads events of series (a)'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     ts = obj[("600", "P1201")]
     self.assertEquals([
         (str_to_datetime("2010-04-03", "00:00:00", 2), 20),
         (str_to_datetime("2010-04-04", "00:00:00", 2), 22),
         (str_to_datetime("2010-04-05", "00:00:00", 2), 17),
         (str_to_datetime("2010-04-06", "00:00:00", 2), 20),
         (str_to_datetime("2010-04-07", "00:00:00", 2), 21),
         (str_to_datetime("2010-04-08", "00:00:00", 2), 22),
         (str_to_datetime("2010-04-09", "00:00:00", 2), 24),
         (str_to_datetime("2010-04-10", "00:00:00", 2), 24),
         (str_to_datetime("2010-04-11", "00:00:00", 2), 24),
         (str_to_datetime("2010-04-12", "00:00:00", 2), 22),
     ], ts.get_values())
Esempio n. 19
0
    def test112(self):
        """TimeSeries.as_dict reads events of series (c)

        This time series contains two values that should be ignored.

        """
        obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.missVal.xml")
        ts = obj[("600", "P1212")]
        self.assertEquals([
                (str_to_datetime("2010-04-03", "00:00:00", 2), 20),
                (str_to_datetime("2010-04-04", "00:00:00", 2), 22),
                (str_to_datetime("2010-04-05", "00:00:00", 2), 17),
                (str_to_datetime("2010-04-06", "00:00:00", 2), 20),
                (str_to_datetime("2010-04-07", "00:00:00", 2), 21),
                (str_to_datetime("2010-04-09", "00:00:00", 2), 24),
                (str_to_datetime("2010-04-11", "00:00:00", 2), 24),
                (str_to_datetime("2010-04-12", "00:00:00", 2), 22), ],
                          ts.get_values())
Esempio n. 20
0
    def test112(self):
        """TimeSeries.as_dict reads events of series (c)

        This time series contains two values that should be ignored.

        """
        obj = TimeSeries.as_dict(self.testdata +
                                 "read.PI.timezone.missVal.xml")
        ts = obj[("600", "P1212")]
        self.assertEquals([
            (str_to_datetime("2010-04-03", "00:00:00", 2), 20),
            (str_to_datetime("2010-04-04", "00:00:00", 2), 22),
            (str_to_datetime("2010-04-05", "00:00:00", 2), 17),
            (str_to_datetime("2010-04-06", "00:00:00", 2), 20),
            (str_to_datetime("2010-04-07", "00:00:00", 2), 21),
            (str_to_datetime("2010-04-09", "00:00:00", 2), 24),
            (str_to_datetime("2010-04-11", "00:00:00", 2), 24),
            (str_to_datetime("2010-04-12", "00:00:00", 2), 22),
        ], ts.get_values())
Esempio n. 21
0
    def test103(self):
        """TimeSeries.as_dict reads events of series (d)

        This time series contains two values that should be ignored.

        """
        obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.no.missVal.xml")
        ts = obj[("600", "P1212")]
        self.assertEquals([
                (str_to_datetime("2010-04-03", "00:00:00", 2), (20, 0, '')),
                (str_to_datetime("2010-04-04", "00:00:00", 2), (22, 0, '')),
                (str_to_datetime("2010-04-05", "00:00:00", 2), (17, 0, '')),
                (str_to_datetime("2010-04-06", "00:00:00", 2), (20, 0, '')),
                (str_to_datetime("2010-04-07", "00:00:00", 2), (21, 0, '')),
                (str_to_datetime("2010-04-08", "00:00:00", 2), (-999.0, 0, '')),
                (str_to_datetime("2010-04-09", "00:00:00", 2), (24, 0, '')),
                (str_to_datetime("2010-04-10", "00:00:00", 2), (-999.0, 0, '')),
                (str_to_datetime("2010-04-11", "00:00:00", 2), (24, 0, '')),
                (str_to_datetime("2010-04-12", "00:00:00", 2), (22, 0, '')), ],
                          ts.get_events())
Esempio n. 22
0
    def test305(self):
        'TimeSeries.as_dict reads from django QuerySet'

        DT = datetime
        testdata = django.QuerySet([
                {'location': '123',
                 'parameter': 'Q',
                 'events': [(DT(2011, 11, 11, 12, 20), 1.1, 8, ''),
                            (DT(2011, 11, 11, 12, 25), 1.2, 1, ''),
                            (DT(2011, 11, 11, 12, 30), 1.3, 2, '')]},
                {'location': '124',
                 'parameter': 'Q',
                 'events': [(DT(2011, 11, 11, 12, 20), 0.1, 8, ''),
                            (DT(2011, 11, 11, 12, 25), 0.2, 1, ''),
                            (DT(2011, 11, 11, 12, 30), 0.3, 2, '')]},
                ])
        obj = TimeSeries.as_dict(testdata)
        self.assertEquals(set([('123', 'Q'), ('124', 'Q')]), set(obj.keys()))
        self.assertEquals(set([1.1, 1.2, 1.3]), set(i[0] for i in obj[('123', 'Q')]._events.values()))
        self.assertEquals(set([0.1, 0.2, 0.3]), set(i[0] for i in obj[('124', 'Q')]._events.values()))
        self.assertEquals([], testdata.filtered)
Esempio n. 23
0
def test_write_to_pi_file():
    """Test the way to write a TimeseriesStub-like object to a PI XML file."""
    series = \
        SparseTimeseriesStub(datetime(2011, 10, 25), [10.0, 20.0, 30.0])

    testdata = pkg_resources.resource_filename("timeseries", "testdata/")
    filename = "sluice-error.xml"
    filepath = os.path.join(testdata, filename)
    if filename in os.listdir(testdata):
        os.remove(filepath)

    write_to_pi_file(location_id="SAP", parameter_id="sluice-error",
        filename=filepath, timeseries=series)

    obj = TimeSeries.as_dict(filepath)

    if filename in os.listdir(testdata):
        os.remove(filepath)

    stored_events = [(e[0], e[1][0]) for e in obj[("SAP", "sluice-error")].get_events()]
    assert stored_events == list(series.events())
Esempio n. 24
0
    def test103(self):
        """TimeSeries.as_dict reads events of series (d)

        This time series contains two values that should be ignored.

        """
        obj = TimeSeries.as_dict(self.testdata +
                                 "read.PI.timezone.no.missVal.xml")
        ts = obj[("600", "P1212")]
        self.assertEquals([
            (str_to_datetime("2010-04-03", "00:00:00", 2), (20, 0, '')),
            (str_to_datetime("2010-04-04", "00:00:00", 2), (22, 0, '')),
            (str_to_datetime("2010-04-05", "00:00:00", 2), (17, 0, '')),
            (str_to_datetime("2010-04-06", "00:00:00", 2), (20, 0, '')),
            (str_to_datetime("2010-04-07", "00:00:00", 2), (21, 0, '')),
            (str_to_datetime("2010-04-08", "00:00:00", 2), (-999.0, 0, '')),
            (str_to_datetime("2010-04-09", "00:00:00", 2), (24, 0, '')),
            (str_to_datetime("2010-04-10", "00:00:00", 2), (-999.0, 0, '')),
            (str_to_datetime("2010-04-11", "00:00:00", 2), (24, 0, '')),
            (str_to_datetime("2010-04-12", "00:00:00", 2), (22, 0, '')),
        ], ts.get_events())
Esempio n. 25
0
def test_write_dict_to_pi_file():
    """Test to write a dict of TimeseriesStub-like objects to a PI XML file."""
    dict_series =\
        {"precipitation": SparseTimeseriesStub(datetime(2011, 10, 25), [10.0, 20.0, 30.0]),
         "seepage": SparseTimeseriesStub(datetime(2011, 10, 25), [40.0, 50.0, 60.0]),
         }

    testdata = pkg_resources.resource_filename("timeseries", "testdata/")
    filename = "open-water-incoming-flows.xml"
    filepath = os.path.join(testdata, filename)
    if filename in os.listdir(testdata):
        os.remove(filepath)

    write_to_pi_file(location_id="SAP", filename=filepath, timeseries=dict_series)

    obj = TimeSeries.as_dict(filepath)

    if filename in os.listdir(testdata):
        os.remove(filepath)

    for parameter_id, series in dict_series.iteritems():
        stored_events = [(e[0], e[1][0]) for e in obj[("SAP", parameter_id)].get_events()]
        assert stored_events == list(series.events())
Esempio n. 26
0
def test_write_to_pi_file():
    """Test the way to write a TimeseriesStub-like object to a PI XML file."""
    series = \
        SparseTimeseriesStub(datetime(2011, 10, 25), [10.0, 20.0, 30.0])

    testdata = pkg_resources.resource_filename("timeseries", "testdata/")
    filename = "sluice-error.xml"
    filepath = os.path.join(testdata, filename)
    if filename in os.listdir(testdata):
        os.remove(filepath)

    write_to_pi_file(location_id="SAP",
                     parameter_id="sluice-error",
                     filename=filepath,
                     timeseries=series)

    obj = TimeSeries.as_dict(filepath)

    if filename in os.listdir(testdata):
        os.remove(filepath)

    stored_events = [(e[0], e[1][0])
                     for e in obj[("SAP", "sluice-error")].get_events()]
    assert stored_events == list(series.events())
Esempio n. 27
0
 def test007(self):
     'TimeSeries.as_dict receiving unrecognized object, returns None'
     self.assertEquals(None, TimeSeries.as_dict(None))
     self.assertEquals(None, TimeSeries.as_dict(123))
     self.assertEquals(None, TimeSeries.as_dict(set()))
Esempio n. 28
0
    def test300(self):
        'TimeSeries.as_dict reads from empty django QuerySet'

        testdata = django.QuerySet([])
        obj = TimeSeries.as_dict(testdata)
        self.assertEquals({}, obj)
Esempio n. 29
0
    def test300(self):
        'TimeSeries.as_dict reads from empty django QuerySet'

        testdata = django.QuerySet([])
        obj = TimeSeries.as_dict(testdata)
        self.assertEquals({}, obj)
Esempio n. 30
0
 def test005(self):
     'TimeSeries.as_dict accepts open stream, returns dictionary'
     stream = file(self.testdata + "read.PI.timezone.2.xml")
     obj = TimeSeries.as_dict(stream)
     self.assertTrue(isinstance(obj, dict))
Esempio n. 31
0
 def test005(self):
     'TimeSeries.as_dict accepts open stream, returns dictionary'
     stream = file(self.testdata + "read.PI.timezone.2.xml")
     obj = TimeSeries.as_dict(stream)
     self.assertTrue(isinstance(obj, dict))
Esempio n. 32
0
 def test007(self):
     'TimeSeries.as_dict receiving unrecognized object, returns None'
     self.assertEquals(None, TimeSeries.as_dict(None))
     self.assertEquals(None, TimeSeries.as_dict(123))
     self.assertEquals(None, TimeSeries.as_dict(set()))
Esempio n. 33
0
 def test000(self):
     'TimeSeries.as_dict accepts file name, returns dictionary'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     self.assertTrue(isinstance(obj, dict))
Esempio n. 34
0
 def test000(self):
     'TimeSeries.as_dict accepts file name, returns dictionary'
     obj = TimeSeries.as_dict(self.testdata + "read.PI.timezone.2.xml")
     self.assertTrue(isinstance(obj, dict))