@@ -236,6 +236,19 @@ def test_negative_value_to_human_string(negative_value: int, time_transform: Tim
236236 assert time_transform .to_human_string (TimestampType (), negative_value ) == expected
237237
238238
239+ @pytest .mark .parametrize (
240+ "zero_value,time_transform,expected" ,
241+ [
242+ (0 , YearTransform (), "1970" ),
243+ (0 , MonthTransform (), "1970-01" ),
244+ (0 , DayTransform (), "1970-01-01" ),
245+ (0 , HourTransform (), "1970-01-01-00" ),
246+ ],
247+ )
248+ def test_zero_value_to_human_string (zero_value : int , time_transform : TimeTransform [Any ], expected : str ) -> None :
249+ assert time_transform .to_human_string (TimestampType (), zero_value ) == expected
250+
251+
239252@pytest .mark .parametrize (
240253 "type_var" ,
241254 [
@@ -274,6 +287,12 @@ def test_time_methods(type_var: PrimitiveType) -> None:
274287 (MonthTransform (), TimestamptzType (), - 1 , - 1 ),
275288 (DayTransform (), TimestampType (), 1512151975038194 , 17501 ),
276289 (DayTransform (), TimestampType (), - 1 , - 1 ),
290+ (YearTransform (), DateType (), 0 , 0 ),
291+ (MonthTransform (), DateType (), 0 , 0 ),
292+ (DayTransform (), DateType (), 0 , 0 ),
293+ (YearTransform (), TimestampType (), 0 , 0 ),
294+ (MonthTransform (), TimestampType (), 0 , 0 ),
295+ (DayTransform (), TimestampType (), 0 , 0 ),
277296 ],
278297)
279298def test_time_apply_method (transform : TimeTransform [Any ], type_var : PrimitiveType , value : int , expected : int ) -> None :
@@ -291,6 +310,7 @@ def test_hour_method(type_var: PrimitiveType) -> None:
291310 assert HourTransform ().can_transform (type_var )
292311 assert HourTransform ().result_type (type_var ) == IntegerType ()
293312 assert HourTransform ().transform (type_var )(1512151975038194 ) == 420042 # type: ignore
313+ assert HourTransform ().transform (type_var )(0 ) == 0 # type: ignore
294314 assert HourTransform ().dedup_name == "time"
295315
296316
0 commit comments