blob: 8310d17eaf41c8f62f1405ac24f2076cd23fe794 [file]
import unittest
from mypyc.namegen import (
NameGenerator, exported_name, candidate_suffixes, make_module_translation_map
)
class TestNameGen(unittest.TestCase):
def test_candidate_suffixes(self) -> None:
assert candidate_suffixes('foo') == ['', 'foo_']
assert candidate_suffixes('foo.bar') == ['', 'bar_', 'foo_bar_']
def test_exported_name(self) -> None:
assert exported_name('foo') == 'foo'
assert exported_name('foo.bar') == 'foo___bar'
def test_make_module_translation_map(self) -> None:
assert make_module_translation_map(
['foo', 'bar']) == {'foo': 'foo_', 'bar': 'bar_'}
assert make_module_translation_map(
['foo.bar', 'foo.baz']) == {'foo.bar': 'bar_', 'foo.baz': 'baz_'}
assert make_module_translation_map(
['zar', 'foo.bar', 'foo.baz']) == {'foo.bar': 'bar_',
'foo.baz': 'baz_',
'zar': 'zar_'}
assert make_module_translation_map(
['foo.bar', 'fu.bar', 'foo.baz']) == {'foo.bar': 'foo_bar_',
'fu.bar': 'fu_bar_',
'foo.baz': 'baz_'}
def test_name_generator(self) -> None:
g = NameGenerator(['foo', 'foo.zar'])
assert g.private_name('foo', 'f') == 'foo_f'
assert g.private_name('foo', 'C.x.y') == 'foo_C_x_y'
assert g.private_name('foo', 'C.x.y') == 'foo_C_x_y'
assert g.private_name('foo.zar', 'C.x.y') == 'zar_C_x_y'
assert g.private_name('foo', 'C.x_y') == 'foo_C_x_y_2'
assert g.private_name('foo', 'C_x_y') == 'foo_C_x_y_3'
assert g.private_name('foo', 'C_x_y') == 'foo_C_x_y_3'