Skip to content

Commit 592107b

Browse files
fix: updated tests
1 parent dba3bb8 commit 592107b

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

tests/dialects/test_bigquery.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3269,6 +3269,47 @@ def test_week(self):
32693269
},
32703270
)
32713271

3272+
# Test Negative difference with WEEK(SUNDAY) - verifies argument order swapping
3273+
self.validate_all(
3274+
"DATE_DIFF(DATE '2024-01-01', DATE '2024-01-15', WEEK(SUNDAY))",
3275+
write={
3276+
"bigquery": "DATE_DIFF(CAST('2024-01-01' AS DATE), CAST('2024-01-15' AS DATE), WEEK)",
3277+
"duckdb": "DATE_DIFF('DAY', DATE_TRUNC('WEEK', CAST('2024-01-15' AS DATE) + INTERVAL '1' DAY), DATE_TRUNC('WEEK', CAST('2024-01-01' AS DATE) + INTERVAL '1' DAY)) // 7",
3278+
},
3279+
)
3280+
# Test Negative difference with ISOWEEK - verifies argument order swapping
3281+
self.validate_all(
3282+
"DATE_DIFF(DATE '2024-01-01', DATE '2024-01-15', ISOWEEK)",
3283+
write={
3284+
"bigquery": "DATE_DIFF(CAST('2024-01-01' AS DATE), CAST('2024-01-15' AS DATE), ISOWEEK)",
3285+
"duckdb": "DATE_DIFF('DAY', DATE_TRUNC('WEEK', CAST('2024-01-15' AS DATE)), DATE_TRUNC('WEEK', CAST('2024-01-01' AS DATE))) // 7",
3286+
},
3287+
)
3288+
# Test Year boundary crossing (negative difference)
3289+
self.validate_all(
3290+
"DATE_DIFF(DATE '2023-12-25', DATE '2024-01-08', WEEK(SUNDAY))",
3291+
write={
3292+
"bigquery": "DATE_DIFF(CAST('2023-12-25' AS DATE), CAST('2024-01-08' AS DATE), WEEK)",
3293+
"duckdb": "DATE_DIFF('DAY', DATE_TRUNC('WEEK', CAST('2024-01-08' AS DATE) + INTERVAL '1' DAY), DATE_TRUNC('WEEK', CAST('2023-12-25' AS DATE) + INTERVAL '1' DAY)) // 7",
3294+
},
3295+
)
3296+
# Test Year boundary crossing (positive difference)
3297+
self.validate_all(
3298+
"DATE_DIFF(DATE '2024-01-08', DATE '2023-12-25', WEEK(SUNDAY))",
3299+
write={
3300+
"bigquery": "DATE_DIFF(CAST('2024-01-08' AS DATE), CAST('2023-12-25' AS DATE), WEEK)",
3301+
"duckdb": "DATE_DIFF('DAY', DATE_TRUNC('WEEK', CAST('2023-12-25' AS DATE) + INTERVAL '1' DAY), DATE_TRUNC('WEEK', CAST('2024-01-08' AS DATE) + INTERVAL '1' DAY)) // 7",
3302+
},
3303+
)
3304+
# Test DAY unit with negative difference - verifies non-week argument swapping
3305+
self.validate_all(
3306+
"DATE_DIFF(DATE '2024-01-01', DATE '2024-01-15', DAY)",
3307+
write={
3308+
"bigquery": "DATE_DIFF(CAST('2024-01-01' AS DATE), CAST('2024-01-15' AS DATE), DAY)",
3309+
"duckdb": "DATE_DIFF('DAY', CAST('2024-01-15' AS DATE), CAST('2024-01-01' AS DATE))",
3310+
},
3311+
)
3312+
32723313
def test_approx_qunatiles(self):
32733314
self.validate_identity("APPROX_QUANTILES(foo, 2)")
32743315
self.validate_identity("APPROX_QUANTILES(DISTINCT foo, 2 RESPECT NULLS)")

0 commit comments

Comments
 (0)