diff --git a/banana/cli.py b/banana/cli.py index f68154e..f53827c 100644 --- a/banana/cli.py +++ b/banana/cli.py @@ -72,7 +72,7 @@ def main(): sub = parser.add_subparsers() encode = sub.add_parser("encode", help="Convert number to word") encode.add_argument("num", type=int) - encode.add_argument("--minlength", "-l", help="Set minimum length", type=int, default=6) + encode.add_argument("--minlength", "-l", help="Set minimum length", type=int, default=1) encode.set_defaults(func=main_encode) decode = sub.add_parser("decode", help="Convert word to number") diff --git a/banana/libbanana.py b/banana/libbanana.py index 4af53bc..d326e65 100644 --- a/banana/libbanana.py +++ b/banana/libbanana.py @@ -85,20 +85,5 @@ class BananaCodec(Codec): super().__init__() -class RibesCodec(Codec): - def __init__(self): - super().__init__(0, 1) - - -class AnanasCodec(Codec): - def __init__(self): - super().__init__(1, 0) - - -class AvocadoCodec(Codec): - def __init__(self): - super().__init__(1, 1) - - if __name__ == "__main__": print("Hi I'm the basebanana library") diff --git a/setup.py b/setup.py index 44743df..c0c667c 100644 --- a/setup.py +++ b/setup.py @@ -31,25 +31,24 @@ setup( "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", ], - description="banana", + description="basebanana", entry_points={ "console_scripts": [ + "basebanana=banana.cli:main", "banana=banana.cli:main", - "accavallavacca=banana.cli:main", - "bananarandom=banana.cli:bananarandom", ] }, install_requires=requirements, license="MIT license", long_description=readme + "\n\n" + history, include_package_data=True, - keywords="banana", - name="banana", + keywords="basebanana", + name="basebanana", packages=find_packages(include=["banana", "banana.*"]), setup_requires=setup_requirements, test_suite="tests", tests_require=test_requirements, url="https://git.lattuga.net/itec/banana", - version="0.1.0", + version="0.2.0", zip_safe=False, ) diff --git a/tests/test_banana.py b/tests/test_banana.py index e72bb51..265c219 100644 --- a/tests/test_banana.py +++ b/tests/test_banana.py @@ -5,9 +5,21 @@ import random import pytest -from banana import AnanasCodec, AvocadoCodec, BananaCodec, RibesCodec +from banana import BananaCodec -banana_conversions = {"be": 1, "beba": 70, "zu": 69, "bezu": 139, "nana": 2485} +banana_conversions = { + "be": 1, + "da": 10, + "bema" : 100, + "duga": 1000, + "bibiva": 10000, + "galopa": 100000, + "bivucasa": 1000000, + "beba": 70, + "zu": 69, + "bezu": 139, + "nana": 2485, +} @pytest.fixture(params=banana_conversions.items()) @@ -15,74 +27,9 @@ def banana_known(request): yield request.param -avocado_conversions = { - "a": 0, - "aca": 5, - "ada": 10, - "afa": 15, - "aga": 20, - "ala": 25, - "ama": 30, - "ana": 35, - "apa": 40, - "ara": 45, - "asa": 50, - "ata": 55, - "ava": 60, - "aza": 65, - "eba": 70, - "eca": 75, - "eda": 80, - "efa": 85, - "ega": 90, -} - - -@pytest.fixture(params=avocado_conversions.items()) -def avocado_known(request): - yield request.param - - -ribes_conversions = {"b": 0, "c": 1, "z": 13, "beb": 14, "bec": 15} - - -@pytest.fixture(params=ribes_conversions.items()) -def ribes_known(request): - yield request.param - - -ananas_conversions = { - "ac": 1, - "al": 5, - "as": 10, - "ec": 15, - "em": 20, - "et": 25, - "id": 30, - "in": 35, - "iv": 40, - "of": 45, - "op": 50, - "oz": 55, - "ug": 60, - "ur": 65, - "acab": 70, - "acal": 75, - "acas": 80, - "acec": 85, - "acem": 90, -} - - -ananas_codec = AnanasCodec() -avocado_codec = AvocadoCodec() banana_codec = BananaCodec() -ribes_codec = RibesCodec() -@pytest.fixture(params=ananas_conversions.items()) -def ananas_known(request): - yield request.param def test_banana_to_dec_known(banana_known): @@ -99,12 +46,6 @@ def test_banana_is_banana(banana_known): assert banana_codec.is_valid(banana_known[0]) -def test_banana_is_only_banana(banana_known): - assert not ribes_codec.is_valid(banana_known[0]) - assert not ananas_codec.is_valid(banana_known[0]) - assert not avocado_codec.is_valid(banana_known[0]) - - def test_banana2dec_prefix_ba(banana_known): """un ba all'inizio non cambia nulla!""" word, value = banana_known @@ -112,66 +53,6 @@ def test_banana2dec_prefix_ba(banana_known): assert banana_codec.decode(prefix + word) == value -def test_ribes_to_dec_known(ribes_known): - word, value = ribes_known - assert ribes_codec.decode(word) == value - - -def test_dec_to_ribes_known(ribes_known): - word, value = ribes_known - assert ribes_codec.encode(value) == word - - -def test_ribes_is_ribes(ribes_known): - assert ribes_codec.is_valid(ribes_known[0]) - - -def test_ribes_is_only_ribes(ribes_known): - assert not banana_codec.is_valid(ribes_known[0]) - assert not ananas_codec.is_valid(ribes_known[0]) - assert not avocado_codec.is_valid(ribes_known[0]) - - -def test_avocado_to_dec_known(avocado_known): - word, value = avocado_known - assert avocado_codec.decode(word) == value - - -def test_dec_to_avocado_known(avocado_known): - word, value = avocado_known - assert avocado_codec.encode(value) == word - - -def test_avocado_is_avocado(avocado_known): - assert avocado_codec.is_valid(avocado_known[0]) - - -def test_avocado_is_only_avocado(avocado_known): - assert not ribes_codec.is_valid(avocado_known[0]) - assert not ananas_codec.is_valid(avocado_known[0]) - assert not banana_codec.is_valid(avocado_known[0]) - - -def test_ananas_to_dec_known(ananas_known): - word, value = ananas_known - assert ananas_codec.decode(word) == value - - -def test_dec_to_ananas_known(ananas_known): - word, value = ananas_known - assert ananas_codec.encode(value) == word - - -def test_ananas_is_ananas(ananas_known): - assert ananas_codec.is_valid(ananas_known[0]) - - -def test_ananas_is_only_ananas(ananas_known): - assert not ribes_codec.is_valid(ananas_known[0]) - assert not banana_codec.is_valid(ananas_known[0]) - assert not banana_codec.is_valid(ananas_known[0]) - - def test_answer_to_life_the_universe_and_everything(): banana = banana_codec.decode("banana") assert banana != 42 @@ -180,41 +61,4 @@ def test_answer_to_life_the_universe_and_everything(): def test_random_len_0(): assert banana_codec.random(minlength=0) == "" - assert ananas_codec.random(minlength=0) == "" - assert avocado_codec.random(minlength=0) == "" - assert ribes_codec.random(minlength=0) == "" - - -def test_banana_random_minlength_even(): - for l in (0, 2, 4, 6, 8, 10, 12): - assert len(banana_codec.random(minlength=l)) == l - assert len(ananas_codec.random(minlength=l)) == l - - -def test_banana_random_minlength_odd(): - for l in (1, 3, 5, 7, 9): - assert len(banana_codec.random(minlength=l)) == l + 1 - assert len(ananas_codec.random(minlength=l)) == l + 1 - - -def test_ribes_random_minlength_even(): - for l in (2, 4, 6, 8, 10, 12): - assert len(ribes_codec.random(minlength=l)) == l + 1 - assert len(avocado_codec.random(minlength=l)) == l + 1 - - -def test_ribes_random_minlength_odd(): - for l in (1, 3, 5, 7, 9): - assert len(ribes_codec.random(minlength=l)) == l - assert len(avocado_codec.random(minlength=l)) == l - - -def test_random_coherence_please(): - for codec in (ribes_codec, ananas_codec, avocado_codec, banana_codec): - for seed in range(30): - word = codec.random(prng=random.Random(seed)) - assert codec.is_valid(word), "%s (seed %d) non valido per %s" % ( - word, - seed, - codec.__class__.__name__, - ) +