from sqlglot import exp from tests.dialects.test_dialect import Validator class TestDune(Validator): dialect = "dune" def test_dune(self): self.validate_identity("CAST(x AS INT256)") self.validate_identity("CAST(x AS UINT256)") for hex_literal in ( "deadbeef", "deadbeefdead", "deadbeefdeadbeef", "deadbeefdeadbeefde", "deadbeefdeadbeefdead", "deadbeefdeadbeefdeadbeef", "deadbeefdeadbeefdeadbeefdeadbeef", ): with self.subTest(f"Transpiling hex literal {hex_literal}"): self.parse_one(f"0x{hex_literal}").assert_is(exp.HexString) self.validate_all( f"SELECT 0x{hex_literal}", read={ "dune": f"SELECT X'{hex_literal}'", "postgres": f"SELECT x'{hex_literal}'", "trino": f"SELECT X'{hex_literal}'", }, write={ "dune": f"SELECT 0x{hex_literal}", "postgres": f"SELECT x'{hex_literal}'", "trino": f"SELECT x'{hex_literal}'", }, )