Skip to content

Commit 7a7dda9

Browse files
geooo109georgesittas
authored andcommitted
sf tests
1 parent 5d6d224 commit 7a7dda9

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

tests/dialects/test_snowflake.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,31 @@ def test_snowflake(self):
502502
self.validate_identity("TO_NUMBER(expr)")
503503
self.validate_identity("TO_NUMBER(expr, fmt)")
504504
self.validate_identity("TO_NUMBER(expr, fmt, precision, scale)")
505+
506+
ast = self.validate_identity("TO_NUMBER('12.3456')")
507+
self.assertIsInstance(ast, exp.ToNumber)
508+
self.assertIsNone(ast.args.get("format"))
509+
self.assertEqual(ast.args.get("precision").name, "38")
510+
self.assertEqual(ast.args.get("scale").name, "0")
511+
512+
ast = self.validate_identity("TO_NUMBER('12.3456', 10, 1)")
513+
self.assertIsInstance(ast, exp.ToNumber)
514+
self.assertIsNone(ast.args.get("format"))
515+
self.assertEqual(ast.args.get("precision").name, "10")
516+
self.assertEqual(ast.args.get("scale").name, "1")
517+
518+
ast = self.validate_identity("TO_NUMBER('12.3456', '99.99')")
519+
self.assertIsInstance(ast, exp.ToNumber)
520+
self.assertEqual(ast.args.get("format").name, "99.99")
521+
self.assertEqual(ast.args.get("precision").name, "38")
522+
self.assertEqual(ast.args.get("scale").name, "0")
523+
524+
ast = self.validate_identity("TO_NUMBER('12.3456', '99.99', 10, 1)")
525+
self.assertIsInstance(ast, exp.ToNumber)
526+
self.assertEqual(ast.args.get("format").name, "99.99")
527+
self.assertEqual(ast.args.get("precision").name, "10")
528+
self.assertEqual(ast.args.get("scale").name, "1")
529+
505530
self.validate_identity("TO_DECFLOAT('123.456')")
506531
self.validate_identity("TO_DECFLOAT('1,234.56', '999,999.99')")
507532
self.validate_identity("TRY_TO_DECFLOAT('123.456')")
@@ -545,6 +570,35 @@ def test_snowflake(self):
545570
self.validate_identity("TRY_TO_NUMBER('123.45')")
546571
self.validate_identity("TRY_TO_NUMBER('123.45', '999.99')")
547572
self.validate_identity("TRY_TO_NUMBER('123.45', '999.99', 10, 2)")
573+
574+
ast = self.validate_identity("TRY_TO_NUMBER('12.3456')")
575+
self.assertIsInstance(ast, exp.ToNumber)
576+
self.assertIsNone(ast.args.get("format"))
577+
self.assertEqual(ast.args.get("precision").name, "38")
578+
self.assertEqual(ast.args.get("scale").name, "0")
579+
self.assertTrue(ast.args.get("safe"))
580+
581+
ast = self.validate_identity("TRY_TO_NUMBER('12.3456', 10, 1)")
582+
self.assertIsInstance(ast, exp.ToNumber)
583+
self.assertIsNone(ast.args.get("format"))
584+
self.assertEqual(ast.args.get("precision").name, "10")
585+
self.assertEqual(ast.args.get("scale").name, "1")
586+
self.assertTrue(ast.args.get("safe"))
587+
588+
ast = self.validate_identity("TRY_TO_NUMBER('12.3456', '99.99')")
589+
self.assertIsInstance(ast, exp.ToNumber)
590+
self.assertEqual(ast.args.get("format").name, "99.99")
591+
self.assertEqual(ast.args.get("precision").name, "38")
592+
self.assertEqual(ast.args.get("scale").name, "0")
593+
self.assertTrue(ast.args.get("safe"))
594+
595+
ast = self.validate_identity("TRY_TO_NUMBER('12.3456', '99.99', 10, 1)")
596+
self.assertIsInstance(ast, exp.ToNumber)
597+
self.assertEqual(ast.args.get("format").name, "99.99")
598+
self.assertEqual(ast.args.get("precision").name, "10")
599+
self.assertEqual(ast.args.get("scale").name, "1")
600+
self.assertTrue(ast.args.get("safe"))
601+
548602
self.validate_identity("TO_NUMERIC('123.45')", "TO_NUMBER('123.45')")
549603
self.validate_identity("TO_NUMERIC('123.45', '999.99')", "TO_NUMBER('123.45', '999.99')")
550604
self.validate_identity(

0 commit comments

Comments
 (0)