From 96924ebe9a0efd63d1210e1370ffca15bcbaae8d Mon Sep 17 00:00:00 2001 From: Chong Gao Date: Fri, 8 Dec 2023 11:09:34 +0800 Subject: [PATCH] Add date_format test cases --- integration_tests/src/main/python/conftest.py | 2 -- .../src/main/python/date_time_test.py | 20 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/integration_tests/src/main/python/conftest.py b/integration_tests/src/main/python/conftest.py index 3e1fe43d746..210034a5ded 100644 --- a/integration_tests/src/main/python/conftest.py +++ b/integration_tests/src/main/python/conftest.py @@ -17,8 +17,6 @@ import random import warnings -from time_zone_utils import * - # TODO redo _spark stuff using fixtures # # Don't import pyspark / _spark directly in conftest globally diff --git a/integration_tests/src/main/python/date_time_test.py b/integration_tests/src/main/python/date_time_test.py index fdc49796bb4..15ba89fdac1 100644 --- a/integration_tests/src/main/python/date_time_test.py +++ b/integration_tests/src/main/python/date_time_test.py @@ -474,6 +474,26 @@ def test_date_format_for_date(data_gen, date_format): assert_gpu_and_cpu_are_equal_collect( lambda spark : unary_op_df(spark, data_gen).selectExpr("date_format(a, '{}')".format(date_format))) +@pytest.mark.parametrize('date_format', supported_date_formats, ids=idfn) +@pytest.mark.parametrize('data_gen', [timestamp_gen], ids=idfn) +@pytest.mark.skipif(not is_supported_time_zone(), reason="not all time zones are supported now, refer to https://github.com/NVIDIA/spark-rapids/issues/6839, please update after all time zones are supported") +def test_date_format_for_time(data_gen, date_format): + conf = {'spark.rapids.sql.nonUTC.enabled': True} + assert_gpu_and_cpu_are_equal_collect( + lambda spark : unary_op_df(spark, data_gen).selectExpr("date_format(a, '{}')".format(date_format)), + conf) + +@pytest.mark.parametrize('date_format', supported_date_formats, ids=idfn) +@pytest.mark.parametrize('data_gen', [timestamp_gen], ids=idfn) +@pytest.mark.skipif(is_supported_time_zone(), reason="not all time zones are supported now, refer to https://github.com/NVIDIA/spark-rapids/issues/6839, please update after all time zones are supported") +@allow_non_gpu('ProjectExec') +def test_date_format_for_time_fall_back(data_gen, date_format): + conf = {'spark.rapids.sql.nonUTC.enabled': True} + assert_gpu_fallback_collect( + lambda spark : unary_op_df(spark, data_gen).selectExpr("date_format(a, '{}')".format(date_format)), + 'ProjectExec', + conf) + @pytest.mark.parametrize('date_format', supported_date_formats, ids=idfn) # from 0001-02-01 to 9999-12-30 to avoid 'year 0 is out of range' @pytest.mark.parametrize('data_gen', [LongGen(min_val=int(datetime(1, 2, 1).timestamp()), max_val=int(datetime(9999, 12, 30).timestamp()))], ids=idfn)