|
21 | 21 | import static org.apache.arrow.driver.jdbc.utils.IntervalStringUtils.formatIntervalYear; |
22 | 22 | import static org.hamcrest.CoreMatchers.equalTo; |
23 | 23 | import static org.hamcrest.CoreMatchers.is; |
24 | | -import static org.joda.time.Period.parse; |
25 | 24 |
|
26 | 25 | import java.time.Duration; |
27 | 26 | import java.time.Period; |
@@ -142,57 +141,62 @@ private String getStringOnVector(ValueVector vector, int index) { |
142 | 141 | if (object == null) { |
143 | 142 | return null; |
144 | 143 | } else if (vector instanceof IntervalDayVector) { |
145 | | - return formatIntervalDay(parse(object)); |
| 144 | + return formatIntervalDay(Duration.parse(object)); |
146 | 145 | } else if (vector instanceof IntervalYearVector) { |
147 | | - return formatIntervalYear(parse(object)); |
| 146 | + return formatIntervalYear(Period.parse(object)); |
148 | 147 | } |
149 | 148 | return null; |
150 | 149 | } |
151 | 150 |
|
152 | 151 | @Test |
153 | 152 | public void testShouldGetIntervalYear( ) { |
154 | | - Assert.assertEquals("-002-00", formatIntervalYear(parse("P-2Y"))); |
155 | | - Assert.assertEquals("-001-01", formatIntervalYear(parse("P-1Y-1M"))); |
156 | | - Assert.assertEquals("-001-02", formatIntervalYear(parse("P-1Y-2M"))); |
157 | | - Assert.assertEquals("-002-03", formatIntervalYear(parse("P-2Y-3M"))); |
158 | | - Assert.assertEquals("-002-04", formatIntervalYear(parse("P-2Y-4M"))); |
159 | | - Assert.assertEquals("-011-01", formatIntervalYear(parse("P-11Y-1M"))); |
160 | | - Assert.assertEquals("+002-00", formatIntervalYear(parse("P+2Y"))); |
161 | | - Assert.assertEquals("+001-01", formatIntervalYear(parse("P+1Y1M"))); |
162 | | - Assert.assertEquals("+001-02", formatIntervalYear(parse("P+1Y2M"))); |
163 | | - Assert.assertEquals("+002-03", formatIntervalYear(parse("P+2Y3M"))); |
164 | | - Assert.assertEquals("+002-04", formatIntervalYear(parse("P+2Y4M"))); |
165 | | - Assert.assertEquals("+011-01", formatIntervalYear(parse("P+11Y1M"))); |
| 153 | + Assert.assertEquals("-002-00", formatIntervalYear(Period.parse("P-2Y"))); |
| 154 | + Assert.assertEquals("-001-01", formatIntervalYear(Period.parse("P-1Y-1M"))); |
| 155 | + Assert.assertEquals("-001-02", formatIntervalYear(Period.parse("P-1Y-2M"))); |
| 156 | + Assert.assertEquals("-002-03", formatIntervalYear(Period.parse("P-2Y-3M"))); |
| 157 | + Assert.assertEquals("-002-04", formatIntervalYear(Period.parse("P-2Y-4M"))); |
| 158 | + Assert.assertEquals("-011-01", formatIntervalYear(Period.parse("P-11Y-1M"))); |
| 159 | + Assert.assertEquals("+002-00", formatIntervalYear(Period.parse("P+2Y"))); |
| 160 | + Assert.assertEquals("+001-01", formatIntervalYear(Period.parse("P+1Y1M"))); |
| 161 | + Assert.assertEquals("+001-02", formatIntervalYear(Period.parse("P+1Y2M"))); |
| 162 | + Assert.assertEquals("+002-03", formatIntervalYear(Period.parse("P+2Y3M"))); |
| 163 | + Assert.assertEquals("+002-04", formatIntervalYear(Period.parse("P+2Y4M"))); |
| 164 | + Assert.assertEquals("+011-01", formatIntervalYear(Period.parse("P+11Y1M"))); |
166 | 165 | } |
167 | 166 |
|
168 | 167 | @Test |
169 | 168 | public void testShouldGetIntervalDay( ) { |
170 | | - Assert.assertEquals("-001 00:00:00.000", formatIntervalDay(parse("PT-24H"))); |
171 | | - Assert.assertEquals("+001 00:00:00.000", formatIntervalDay(parse("PT+24H"))); |
172 | | - Assert.assertEquals("-000 01:00:00.000", formatIntervalDay(parse("PT-1H"))); |
173 | | - Assert.assertEquals("-000 01:00:00.001", formatIntervalDay(parse("PT-1H-0M-00.001S"))); |
174 | | - Assert.assertEquals("-000 01:01:01.000", formatIntervalDay(parse("PT-1H-1M-1S"))); |
175 | | - Assert.assertEquals("-000 02:02:02.002", formatIntervalDay(parse("PT-2H-2M-02.002S"))); |
176 | | - Assert.assertEquals("-000 23:59:59.999", formatIntervalDay(parse("PT-23H-59M-59.999S"))); |
177 | | - Assert.assertEquals("-000 11:59:00.100", formatIntervalDay(parse("PT-11H-59M-00.100S"))); |
178 | | - Assert.assertEquals("-000 05:02:03.000", formatIntervalDay(parse("PT-5H-2M-3S"))); |
179 | | - Assert.assertEquals("-000 22:22:22.222", formatIntervalDay(parse("PT-22H-22M-22.222S"))); |
180 | | - Assert.assertEquals("+000 01:00:00.000", formatIntervalDay(parse("PT+1H"))); |
181 | | - Assert.assertEquals("+000 01:00:00.001", formatIntervalDay(parse("PT+1H0M00.001S"))); |
182 | | - Assert.assertEquals("+000 01:01:01.000", formatIntervalDay(parse("PT+1H1M1S"))); |
183 | | - Assert.assertEquals("+000 02:02:02.002", formatIntervalDay(parse("PT+2H2M02.002S"))); |
184 | | - Assert.assertEquals("+000 23:59:59.999", formatIntervalDay(parse("PT+23H59M59.999S"))); |
185 | | - Assert.assertEquals("+000 11:59:00.100", formatIntervalDay(parse("PT+11H59M00.100S"))); |
186 | | - Assert.assertEquals("+000 05:02:03.000", formatIntervalDay(parse("PT+5H2M3S"))); |
187 | | - Assert.assertEquals("+000 22:22:22.222", formatIntervalDay(parse("PT+22H22M22.222S"))); |
| 169 | + Assert.assertEquals("-001 00:00:00.000", formatIntervalDay(Duration.parse("PT-24H"))); |
| 170 | + Assert.assertEquals("+001 00:00:00.000", formatIntervalDay(Duration.parse("PT+24H"))); |
| 171 | + Assert.assertEquals("-000 01:00:00.000", formatIntervalDay(Duration.parse("PT-1H"))); |
| 172 | + // "JDK-8054978: java.time.Duration.parse() fails for negative duration with 0 seconds and nanos" not fixed on JDK8 |
| 173 | + //Assert.assertEquals("-000 01:00:00.001", formatIntervalDay(Duration.parse("PT-1H-0M-00.001S"))); |
| 174 | + Assert.assertEquals("-000 01:00:00.001", formatIntervalDay(Duration.ofHours(-1).minusMillis(1))); |
| 175 | + Assert.assertEquals("-000 01:01:01.000", formatIntervalDay(Duration.parse("PT-1H-1M-1S"))); |
| 176 | + Assert.assertEquals("-000 02:02:02.002", formatIntervalDay(Duration.parse("PT-2H-2M-02.002S"))); |
| 177 | + Assert.assertEquals("-000 23:59:59.999", formatIntervalDay(Duration.parse("PT-23H-59M-59.999S"))); |
| 178 | + // "JDK-8054978: java.time.Duration.parse() fails for negative duration with 0 seconds and nanos" not fixed on JDK8 |
| 179 | + //Assert.assertEquals("-000 11:59:00.100", formatIntervalDay(Duration.parse("PT-11H-59M-00.100S"))); |
| 180 | + Assert.assertEquals("-000 11:59:00.100", |
| 181 | + formatIntervalDay(Duration.ofHours(-11).minusMinutes(59).minusMillis(100))); |
| 182 | + Assert.assertEquals("-000 05:02:03.000", formatIntervalDay(Duration.parse("PT-5H-2M-3S"))); |
| 183 | + Assert.assertEquals("-000 22:22:22.222", formatIntervalDay(Duration.parse("PT-22H-22M-22.222S"))); |
| 184 | + Assert.assertEquals("+000 01:00:00.000", formatIntervalDay(Duration.parse("PT+1H"))); |
| 185 | + Assert.assertEquals("+000 01:00:00.001", formatIntervalDay(Duration.parse("PT+1H0M00.001S"))); |
| 186 | + Assert.assertEquals("+000 01:01:01.000", formatIntervalDay(Duration.parse("PT+1H1M1S"))); |
| 187 | + Assert.assertEquals("+000 02:02:02.002", formatIntervalDay(Duration.parse("PT+2H2M02.002S"))); |
| 188 | + Assert.assertEquals("+000 23:59:59.999", formatIntervalDay(Duration.parse("PT+23H59M59.999S"))); |
| 189 | + Assert.assertEquals("+000 11:59:00.100", formatIntervalDay(Duration.parse("PT+11H59M00.100S"))); |
| 190 | + Assert.assertEquals("+000 05:02:03.000", formatIntervalDay(Duration.parse("PT+5H2M3S"))); |
| 191 | + Assert.assertEquals("+000 22:22:22.222", formatIntervalDay(Duration.parse("PT+22H22M22.222S"))); |
188 | 192 | } |
189 | 193 |
|
190 | 194 | @Test |
191 | 195 | public void testIntervalDayWithJodaPeriodObject() { |
192 | 196 | Assert.assertEquals("+1567 00:00:00.000", |
193 | | - formatIntervalDay(new org.joda.time.Period().plusDays(1567))); |
| 197 | + formatIntervalDay(Duration.ofDays(1567))); |
194 | 198 | Assert.assertEquals("-1567 00:00:00.000", |
195 | | - formatIntervalDay(new org.joda.time.Period().minusDays(1567))); |
| 199 | + formatIntervalDay(Duration.ofDays(-1567))); |
196 | 200 | } |
197 | 201 |
|
198 | 202 | @Test |
|
0 commit comments