/tags/release-0.0.0-rc0/hive/external/ql/src/test/org/apache/hadoop/hive/ql/udf/TestUDFDateDiff.java
Java | 66 lines | 22 code | 14 blank | 30 comment | 0 complexity | 48b46bb9042062dd0442ea9e17647bbc MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, JSON, CPL-1.0
- /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.apache.hadoop.hive.ql.udf;
- import org.apache.hadoop.io.IntWritable;
- import org.apache.hadoop.io.Text;
- import junit.framework.TestCase;
- import java.util.TimeZone;
- /**
- * JUnit test for UDFDateDiff.
- */
- public class TestUDFDateDiff extends TestCase {
- /**
- * Verify differences of dates crossing a daylight savings time change
- * are correct. The timezone tested is west coast US (PDT/PST) with a
- * 1 hour shift back in time at 02:00 AM on 2009-10-31 and a
- * 1 hour shift forward in time at 02:00 AM on 2010-03-14.
- */
- public void testDaylightChange() throws Exception {
- TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
- // time moves ahead an hour at 02:00 on 2009-10-31
- // which results in a 23 hour long day
- Text date1 = new Text("2009-11-01");
- Text date2 = new Text("2009-10-25");
- IntWritable result = new UDFDateDiff().evaluate(date1, date2);
- assertEquals(7, result.get());
- result = new UDFDateDiff().evaluate(date2, date1);
- assertEquals(-7, result.get());
- // time moves back an hour at 02:00 on 2010-03-14
- // which results in a 25 hour long day
- date1 = new Text("2010-03-15");
- date2 = new Text("2010-03-08");
- result = new UDFDateDiff().evaluate(date1, date2);
- assertEquals(7, result.get());
- result = new UDFDateDiff().evaluate(date2, date1);
- assertEquals(-7, result.get());
- }
- }