@@ -39,6 +39,21 @@ def test_to_offset_multiple(self):
39
39
expected = offsets .Hour (3 )
40
40
assert (result == expected )
41
41
42
+ freqstr = '2h 20.5min'
43
+ result = frequencies .to_offset (freqstr )
44
+ expected = offsets .Second (8430 )
45
+ assert (result == expected )
46
+
47
+ freqstr = '1.5min'
48
+ result = frequencies .to_offset (freqstr )
49
+ expected = offsets .Second (90 )
50
+ assert (result == expected )
51
+
52
+ freqstr = '0.5S'
53
+ result = frequencies .to_offset (freqstr )
54
+ expected = offsets .Milli (500 )
55
+ assert (result == expected )
56
+
42
57
freqstr = '15l500u'
43
58
result = frequencies .to_offset (freqstr )
44
59
expected = offsets .Micro (15500 )
@@ -49,6 +64,16 @@ def test_to_offset_multiple(self):
49
64
expected = offsets .Milli (10075 )
50
65
assert (result == expected )
51
66
67
+ freqstr = '1s0.25ms'
68
+ result = frequencies .to_offset (freqstr )
69
+ expected = offsets .Micro (1000250 )
70
+ assert (result == expected )
71
+
72
+ freqstr = '1s0.25L'
73
+ result = frequencies .to_offset (freqstr )
74
+ expected = offsets .Micro (1000250 )
75
+ assert (result == expected )
76
+
52
77
freqstr = '2800N'
53
78
result = frequencies .to_offset (freqstr )
54
79
expected = offsets .Nano (2800 )
@@ -107,10 +132,8 @@ def test_to_offset_invalid(self):
107
132
frequencies .to_offset ('-2-3U' )
108
133
with tm .assertRaisesRegexp (ValueError , 'Invalid frequency: -2D:3H' ):
109
134
frequencies .to_offset ('-2D:3H' )
110
-
111
- # ToDo: Must be fixed in #8419
112
- with tm .assertRaisesRegexp (ValueError , 'Invalid frequency: .5S' ):
113
- frequencies .to_offset ('.5S' )
135
+ with tm .assertRaisesRegexp (ValueError , 'Invalid frequency: 1.5.0S' ):
136
+ frequencies .to_offset ('1.5.0S' )
114
137
115
138
# split offsets with spaces are valid
116
139
assert frequencies .to_offset ('2D 3H' ) == offsets .Hour (51 )
@@ -379,6 +402,26 @@ def test_freq_to_reso(self):
379
402
result = Reso .get_freq (Reso .get_str (Reso .get_reso_from_freq (freq )))
380
403
self .assertEqual (freq , result )
381
404
405
+ def test_resolution_bumping (self ):
406
+ # GH 14378
407
+ Reso = frequencies .Resolution
408
+
409
+ self .assertEqual (Reso .get_stride_from_decimal (1.5 , 'T' ), (90 , 'S' ))
410
+ self .assertEqual (Reso .get_stride_from_decimal (62.4 , 'T' ), (3744 , 'S' ))
411
+ self .assertEqual (Reso .get_stride_from_decimal (1.04 , 'H' ), (3744 , 'S' ))
412
+ self .assertEqual (Reso .get_stride_from_decimal (1 , 'D' ), (1 , 'D' ))
413
+ self .assertEqual (Reso .get_stride_from_decimal (0.342931 , 'H' ),
414
+ (1234551600 , 'U' ))
415
+ self .assertEqual (Reso .get_stride_from_decimal (1.2345 , 'D' ),
416
+ (106660800 , 'L' ))
417
+
418
+ with self .assertRaises (ValueError ):
419
+ Reso .get_stride_from_decimal (0.5 , 'N' )
420
+
421
+ # too much precision in the input can prevent
422
+ with self .assertRaises (ValueError ):
423
+ Reso .get_stride_from_decimal (0.3429324798798269273987982 , 'H' )
424
+
382
425
def test_get_freq_code (self ):
383
426
# freqstr
384
427
self .assertEqual (frequencies .get_freq_code ('A' ),
0 commit comments