Beispiel #1
0
 def test_resampled(self):
     original_frequency = Milliseconds(500)
     original_duration = Seconds(1)
     ratio = 0.02
     orig_sr = SampleRate(original_frequency, original_duration)
     new_sr = orig_sr.resample(ratio)
     self.assertEqual(Milliseconds(10), new_sr.frequency)
     self.assertEqual(Milliseconds(20), new_sr.duration)
Beispiel #2
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])
Beispiel #3
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))
Beispiel #4
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))
Beispiel #5
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])
Beispiel #6
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))
Beispiel #7
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))
 def test_time_slice_spanning_less_than_one_example_returns_one_example(
         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=Milliseconds(100))
     sliced = ts[timeslice]
     self.assertIsInstance(sliced, VariableRateTimeSeries)
     self.assertEqual(1, len(sliced))
Beispiel #9
0
 def test_can_get_entire_time_series_with_empty_slice(self):
     arr = np.arange(10)
     freq = Seconds(1)
     duration = Milliseconds(500)
     ts = ArrayWithUnits(arr, [TimeDimension(freq, duration)])
     ts2 = ts[:]
     self.assertIsInstance(ts2, ArrayWithUnits)
     self.assertTrue(np.all(np.arange(10) == ts2))
Beispiel #10
0
 def test_discrete_samples_multiple_dimensions(self):
     sr = SR22050()
     samples = SilenceSynthesizer(sr).synthesize(Milliseconds(6666))
     stacked = ArrayWithUnits(
         np.zeros((10, ) + samples.shape, dtype=samples.dtype),
         (IdentityDimension(), ) + samples.dimensions)
     stacked[:] = samples
     self.assertEqual((512, 1024), HalfLapped().discrete_samples(stacked))
Beispiel #11
0
 def test_equivalent_timeslices_hash_to_the_same_value(self):
     ts1 = TimeSlice(start=Seconds(1), duration=Seconds(7))
     ts2 = TimeSlice(start=Milliseconds(1000), duration=Milliseconds(7000))
     self.assertEqual(hash(ts1), hash(ts2))
Beispiel #12
0
 def test_overlap_ratio_half(self):
     sr = SampleRate(frequency=Milliseconds(500), duration=Seconds(1))
     self.assertEqual(0.5, sr.overlap_ratio)
Beispiel #13
0
 def test_equals(self):
     td1 = TimeDimension(Seconds(1), Milliseconds(900))
     td2 = TimeDimension(Seconds(1), Milliseconds(900))
     self.assertEqual(td1, td2)
Beispiel #14
0
 def test_overlap_ratio_type(self):
     sr = SampleRate(frequency=Milliseconds(500), duration=Seconds(1))
     self.assertIsInstance(sr.overlap_ratio, float)
Beispiel #15
0
 def test_different_units_equal(self):
     self.assertEqual(Seconds(1), Milliseconds(1000))
Beispiel #16
0
 def test_samplerate_three_per_second(self):
     arr = np.arange(10)
     freq = Milliseconds(333)
     ts = ArrayWithUnits(arr, [TimeDimension(freq)])
     self.assertEqual(3, int(ts.dimensions[0].samples_per_second))
Beispiel #17
0
 def test_duration_in_seconds_half_second(self):
     arr = np.arange(10)
     freq = Milliseconds(500)
     ts = ArrayWithUnits(arr, [TimeDimension(freq)])
     self.assertEqual(0.5, ts.dimensions[0].duration_in_seconds)
Beispiel #18
0
 def test_span_duration_less_than_frequency(self):
     arr = np.arange(10)
     freq = Seconds(1)
     duration = Milliseconds(500)
     ts = ArrayWithUnits(arr, [TimeDimension(freq, duration)])
     self.assertEqual(TimeSlice(Milliseconds(9500)), ts.dimensions[0].span)
Beispiel #19
0
 def test_milliseconds_equal(self):
     a = Milliseconds(1000)
     b = np.timedelta64(1000, 'ms')
     self.assertEqual(a, b)