Esempio n. 1
0
 def raises_if_data_is_of_variable_size(self):
     data = ((
         (TimeSlice(start=Seconds(3), duration=Seconds(1)), np.zeros(11)),
         (TimeSlice(start=Seconds(0), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(1), duration=Seconds(2)), np.zeros(10))
     ))
     self.assertRaises(ValueError, VariableRateTimeSeries(data))
Esempio n. 2
0
 def test_get_index_error_when_using_out_of_range_int_index(self):
     ts = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(0), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(1), duration=Seconds(2)), np.zeros(10)),
         (TimeSlice(start=Seconds(3), duration=Seconds(1)), np.zeros(10))
     ))
     self.assertRaises(IndexError, lambda: ts[5])
Esempio n. 3
0
 def test_can_create_instance_with_no_slice_data(self):
     ts = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(1), duration=Seconds(1)), np.zeros(0)),
         (TimeSlice(start=Seconds(2), duration=Seconds(1)), np.zeros(0)),
     ))
     self.assertEqual(2, len(ts))
     self.assertEqual((2, 0), ts.slicedata.shape)
Esempio n. 4
0
 def test_end(self):
     ts = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(0), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(1), duration=Seconds(2)), np.zeros(10)),
         (TimeSlice(start=Seconds(3), duration=Seconds(1)), np.zeros(10))
     ))
     self.assertEqual(Seconds(4), ts.end)
Esempio n. 5
0
 def test_can_produce_time_slice_iterable_from_timestamps(self):
     slices = TimeSlice.slices([Seconds(1), Milliseconds(1), Seconds(2)])
     self.assertEqual(2, len(slices))
     self.assertEqual(
         TimeSlice(start=Milliseconds(1), duration=Milliseconds(999)),
         slices[0])
     self.assertEqual(TimeSlice(start=Seconds(1), duration=Seconds(1)),
                      slices[1])
Esempio n. 6
0
 def test_sorts_input(self):
     ts = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(3), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(0), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(1), duration=Seconds(2)), np.zeros(10))
     ))
     timeslice, data = ts[0]
     self.assertEqual(
             TimeSlice(start=Seconds(0), duration=Seconds(1)), timeslice)
Esempio n. 7
0
 def test_can_slice_time_series_with_time_slice(self):
     ts = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(0), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(1), duration=Seconds(2)), np.zeros(10)),
         (TimeSlice(start=Seconds(3), duration=Seconds(1)), np.zeros(10))
     ))
     sliced = ts[TimeSlice(start=Seconds(1), duration=Seconds(2))]
     self.assertIsInstance(sliced, VariableRateTimeSeries)
     self.assertEqual(1, len(sliced))
Esempio n. 8
0
 def test_get_empty_time_series_when_using_out_of_range_time_slice(self):
     ts = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(0), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(1), duration=Seconds(2)), np.zeros(10)),
         (TimeSlice(start=Seconds(3), duration=Seconds(1)), np.zeros(10))
     ))
     sliced = ts[TimeSlice(start=Seconds(10), duration=Seconds(1))]
     self.assertIsInstance(sliced, VariableRateTimeSeries)
     self.assertEqual(0, len(sliced))
Esempio n. 9
0
 def test_time_slice_spanning_multiple_examples_returns_all_examples(self):
     ts = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(0), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(1), duration=Seconds(2)), np.zeros(10)),
         (TimeSlice(start=Seconds(3), duration=Seconds(1)), np.zeros(10))
     ))
     timeslice = TimeSlice(start=Milliseconds(500), duration=Seconds(1))
     sliced = ts[timeslice]
     self.assertIsInstance(sliced, VariableRateTimeSeries)
     self.assertEqual(2, len(sliced))
Esempio n. 10
0
 def test_concat_fails_when_data_shape_is_mismatched(self):
     ts1 = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(1), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(2), duration=Seconds(1)), np.zeros(10)),
     ))
     ts2 = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(1), duration=Seconds(1)), np.zeros(11)),
         (TimeSlice(start=Seconds(2), duration=Seconds(1)), np.zeros(11)),
     ))
     self.assertRaises(ValueError, lambda: ts1.concat(ts2))
Esempio n. 11
0
 def test_can_concatenate_variable_rate_time_series(self):
     ts1 = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(1), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(2), duration=Seconds(1)), np.zeros(10)),
     ))
     ts2 = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(1), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(2), duration=Seconds(1)), np.zeros(10)),
     ))
     ts3 = ts1.concat(ts2)
     self.assertEqual(4, len(ts3))
     self.assertEqual((4, 10), ts3.slicedata.shape)
Esempio n. 12
0
 def test_can_index_time_series_with_integer_index(self):
     ts = VariableRateTimeSeries((
         (TimeSlice(start=Seconds(0), duration=Seconds(1)), np.zeros(10)),
         (TimeSlice(start=Seconds(1), duration=Seconds(2)), np.zeros(10)),
         (TimeSlice(start=Seconds(3), duration=Seconds(1)), np.zeros(10))
     ))
     sliced = ts[1]
     self.assertIsInstance(sliced, np.record)
     timeslice, data = sliced
     self.assertEqual(
             TimeSlice(start=Seconds(1), duration=Seconds(2)), timeslice)
     self.assertIsInstance(data, np.ndarray)
     self.assertEqual((10,), data.shape)
Esempio n. 13
0
 def test_can_get_entire_time_series_with_empty_time_slice(self):
     arr = np.arange(10)
     freq = Seconds(1)
     ts = ArrayWithUnits(arr, [TimeDimension(freq)])
     sl = TimeSlice()
     ts2 = ts[sl]
     self.assertEqual(10, len(ts2))
Esempio n. 14
0
 def test_can_slice_time_series_with_open_ended_time_slice(self):
     arr = np.arange(10)
     freq = Seconds(1)
     ts = ArrayWithUnits(arr, [TimeDimension(freq)])
     sl = TimeSlice(None, start=Seconds(2))
     ts2 = ts[sl]
     self.assertEqual(8, len(ts2))
Esempio n. 15
0
 def test_can_mix_time_slice_and_integer_indices(self):
     arr = np.ones((10, 5))
     freq = Seconds(1)
     ts = ArrayWithUnits(arr, [TimeDimension(freq), IdentityDimension()])
     sl = TimeSlice(duration=Seconds(5), start=Seconds(5))
     ts2 = ts[sl, 2:]
     self.assertEqual((5, 3), ts2.shape)
Esempio n. 16
0
 def test_get_empty_time_series_when_using_out_of_range_time_slice(self):
     arr = np.arange(10)
     freq = Seconds(1)
     ts = ArrayWithUnits(arr, [TimeDimension(freq)])
     sl = TimeSlice(Seconds(2), start=Seconds(11))
     ts2 = ts[sl]
     self.assertEqual(0, ts2.size)
     self.assertIsInstance(ts2, ArrayWithUnits)
Esempio n. 17
0
 def test_time_slice_spanning_less_than_one_sample_returns_one_sample(self):
     arr = np.arange(10)
     freq = Seconds(1)
     ts = ArrayWithUnits(arr, [TimeDimension(freq)])
     sl = TimeSlice(Milliseconds(100), start=Milliseconds(1500))
     ts2 = ts[sl]
     self.assertIsInstance(ts2, ArrayWithUnits)
     self.assertEqual(1, ts2.size)
     self.assertEqual(1, ts2[0])
Esempio n. 18
0
 def test_time_slice_spanning_multiple_samples_returns_all_samples(self):
     arr = np.arange(10)
     freq = Seconds(1)
     ts = ArrayWithUnits(arr, [TimeDimension(freq)])
     sl = TimeSlice(Milliseconds(2000), start=Milliseconds(1500))
     ts2 = ts[sl]
     self.assertIsInstance(ts2, ArrayWithUnits)
     self.assertEqual(3, ts2.size)
     self.assertTrue(np.all(np.arange(1, 4) == ts2))
Esempio n. 19
0
 def test_frequency_less_than_one(self):
     arr = np.arange(10)
     freq = Milliseconds(500)
     ts = ArrayWithUnits(arr, [TimeDimension(freq)])
     sl = TimeSlice(Seconds(2), start=Milliseconds(600))
     ts2 = ts[sl]
     self.assertIsInstance(ts2, ArrayWithUnits)
     self.assertEqual(5, ts2.size)
     self.assertTrue(np.all(np.arange(1, 6) == ts2))
Esempio n. 20
0
 def test_frequency_and_duration_differ3(self):
     arr = np.arange(10)
     freq = Seconds(1)
     duration = Seconds(3)
     ts = ArrayWithUnits(arr, [TimeDimension(freq, duration)])
     sl = TimeSlice(Seconds(2), start=Seconds(6))
     ts2 = ts[sl]
     self.assertIsInstance(ts2, ArrayWithUnits)
     self.assertEqual(4, ts2.size)
     self.assertTrue(np.all(np.arange(4, 8) == ts2))
Esempio n. 21
0
 def _process(self, data):
     td = data.dimensions[0]
     frequency = td.frequency
     timestamps = [self.pos + (i * frequency)
             for i, d in enumerate(data)
             if random() > 0.9]
     slices = TimeSlice.slices(timestamps)
     yield VariableRateTimeSeries(
         (ts, np.zeros(0)) for ts in slices)
     self.pos += frequency * len(data)
Esempio n. 22
0
 def test_frequency_less_than_one_freq_and_duration_differ(self):
     arr = np.arange(10)
     freq = Milliseconds(500)
     duration = Seconds(1)
     ts = ArrayWithUnits(arr, [TimeDimension(freq, duration)])
     sl = TimeSlice(Seconds(3), start=Milliseconds(250))
     ts2 = ts[sl]
     self.assertIsInstance(ts2, ArrayWithUnits)
     self.assertEqual(7, ts2.size)
     self.assertTrue(np.all(np.arange(0, 7) == ts2))
Esempio n. 23
0
 def test_duration_less_than_frequency(self):
     arr = np.arange(10)
     freq = Seconds(1)
     duration = Milliseconds(500)
     ts = ArrayWithUnits(arr, [TimeDimension(freq, duration)])
     sl = TimeSlice(Seconds(3), start=Milliseconds(1250))
     ts2 = ts[sl]
     self.assertIsInstance(ts2, ArrayWithUnits)
     self.assertEqual(4, ts2.size)
     self.assertTrue(np.all(np.arange(1, 5) == ts2))
Esempio n. 24
0
 def iter_slices(self):
     td = self.dimensions[0]
     for i, data in enumerate(self):
         yield TimeSlice(duration=td.duration, start=td.frequency * i), data
Esempio n. 25
0
 def test_integer_based_slice(self):
     td = TimeDimension(*SR44100(), size=44100 * 5)
     sl = td.integer_based_slice(TimeSlice(duration=Seconds(1)))
     self.assertEqual(slice(0, 44100), sl)
Esempio n. 26
0
 def span(self):
     try:
         start = self._data.timeslice[0].start
         return TimeSlice(start=start, duration=self.end - start)
     except IndexError:
         return TimeSlice(duration=Seconds(0))
Esempio n. 27
0
 def _gen(self, raw):
     for r in raw:
         ts = TimeSlice(
                 start=Picoseconds(r.start),
                 duration=Picoseconds(r.duration))
         yield (ts, r.slicedata)
Esempio n. 28
0
 def test_span_empty(self):
     ts = VariableRateTimeSeries(())
     self.assertEqual(
             TimeSlice(start=Seconds(0), duration=Seconds(0)), ts.span)
Esempio n. 29
0
 def test_does_not_contain_point_in_time_before(self):
     ts = TimeSlice(Seconds(100), start=Seconds(200))
     self.assertFalse(Seconds(10) in ts)
Esempio n. 30
0
 def test_contains_point_in_time_during(self):
     ts = TimeSlice(Seconds(100), start=Seconds(200))
     self.assertTrue(Seconds(210) in ts)