Files
tampy/tests/test_transpiler.py

82 lines
1.8 KiB
Python

"""Test simple transpiler."""
import ast
import pytest
import sys
sys.path.insert(0, "..")
from tampy.transpiler import SimpleTranspiler
def test_simple_transpile():
"""Test basic transpilation."""
transpiler = SimpleTranspiler()
code = "x = 1"
result = transpiler.transpile(code)
assert "x = 1" in result
def test_function_transpile():
"""Test function transpilation."""
transpiler = SimpleTranspiler()
code = "def foo(): return 1"
result = transpiler.transpile(code)
assert "def foo()" in result
def test_if_transpile():
"""Test if statement transpilation."""
transpiler = SimpleTranspiler()
code = "if True: pass"
result = transpiler.transpile(code)
assert "if True:" in result
def test_for_transpile():
"""Test for loop transpilation."""
transpiler = SimpleTranspiler()
code = "for i in range(10): pass"
result = transpiler.transpile(code)
assert "for i in range(10):" in result
def test_class_transpile():
"""Test class transpilation."""
transpiler = SimpleTranspiler()
code = "class Foo: pass"
result = transpiler.transpile(code)
assert "class Foo:" in result
def test_import_transpile():
"""Test import transpilation."""
transpiler = SimpleTranspiler()
code = "import sys"
result = transpiler.transpile(code)
assert "import sys" in result
def test_roundtrip():
"""Test parsing and regenerating code."""
transpiler = SimpleTranspiler()
code = """
x = 1
y = 2
if x > y:
print(x)
"""
result = transpiler.transpile(code)
assert "x = 1" in result
assert "if" in result
if __name__ == "__main__":
test_simple_transpile()
test_function_transpile()
test_if_transpile()
test_for_transpile()
test_class_transpile()
test_import_transpile()
test_roundtrip()
print("All tests passed")