|
@@ -3,9 +3,7 @@
|
|
|
"""Tests for `banana` package."""
|
|
|
import pytest
|
|
|
|
|
|
-from banana import (ananas2dec, avocado2dec, banana2dec, dec2ananas,
|
|
|
- dec2avocado, dec2banana, dec2ribes, isananas, isavocado,
|
|
|
- isbanana, isribes, ribes2dec)
|
|
|
+from banana import AnanasCodec, AvocadoCodec, BananaCodec, RibesCodec
|
|
|
|
|
|
banana_conversions = {"be": 1, "beba": 70, "zu": 69, "bezu": 139, "nana": 2485}
|
|
|
|
|
@@ -74,6 +72,12 @@ ananas_conversions = {
|
|
|
}
|
|
|
|
|
|
|
|
|
+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
|
|
@@ -81,92 +85,92 @@ def ananas_known(request):
|
|
|
|
|
|
def test_banana_to_dec_known(banana_known):
|
|
|
word, value = banana_known
|
|
|
- assert banana2dec(word) == value
|
|
|
+ assert banana_codec.decode(word) == value
|
|
|
|
|
|
|
|
|
def test_dec_to_banana_known(banana_known):
|
|
|
word, value = banana_known
|
|
|
- assert dec2banana(value) == word
|
|
|
+ assert banana_codec.encode(value) == word
|
|
|
|
|
|
|
|
|
def test_banana_is_banana(banana_known):
|
|
|
- assert isbanana(banana_known[0])
|
|
|
+ assert banana_codec.is_valid(banana_known[0])
|
|
|
|
|
|
|
|
|
def test_banana_is_only_banana(banana_known):
|
|
|
- assert not isribes(banana_known[0])
|
|
|
- assert not isananas(banana_known[0])
|
|
|
- assert not isavocado(banana_known[0])
|
|
|
+ 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
|
|
|
for prefix in ("ba", "baba", "bababa"):
|
|
|
- assert banana2dec(prefix + word) == value
|
|
|
+ assert banana_codec.decode(prefix + word) == value
|
|
|
|
|
|
|
|
|
def test_ribes_to_dec_known(ribes_known):
|
|
|
word, value = ribes_known
|
|
|
- assert ribes2dec(word) == value
|
|
|
+ assert ribes_codec.decode(word) == value
|
|
|
|
|
|
|
|
|
def test_dec_to_ribes_known(ribes_known):
|
|
|
word, value = ribes_known
|
|
|
- assert dec2ribes(value) == word
|
|
|
+ assert ribes_codec.encode(value) == word
|
|
|
|
|
|
|
|
|
def test_ribes_is_ribes(ribes_known):
|
|
|
- assert isribes(ribes_known[0])
|
|
|
+ assert ribes_codec.is_valid(ribes_known[0])
|
|
|
|
|
|
|
|
|
def test_ribes_is_only_ribes(ribes_known):
|
|
|
- assert not isbanana(ribes_known[0])
|
|
|
- assert not isananas(ribes_known[0])
|
|
|
- assert not isavocado(ribes_known[0])
|
|
|
+ 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 avocado2dec(word) == value
|
|
|
+ assert avocado_codec.decode(word) == value
|
|
|
|
|
|
|
|
|
def test_dec_to_avocado_known(avocado_known):
|
|
|
word, value = avocado_known
|
|
|
- assert dec2avocado(value) == word
|
|
|
+ assert avocado_codec.encode(value) == word
|
|
|
|
|
|
|
|
|
def test_avocado_is_avocado(avocado_known):
|
|
|
- assert isavocado(avocado_known[0])
|
|
|
+ assert avocado_codec.is_valid(avocado_known[0])
|
|
|
|
|
|
|
|
|
def test_avocado_is_only_avocado(avocado_known):
|
|
|
- assert not isribes(avocado_known[0])
|
|
|
- assert not isananas(avocado_known[0])
|
|
|
- assert not isbanana(avocado_known[0])
|
|
|
+ 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 ananas2dec(word) == value
|
|
|
+ assert ananas_codec.decode(word) == value
|
|
|
|
|
|
|
|
|
def test_dec_to_ananas_known(ananas_known):
|
|
|
word, value = ananas_known
|
|
|
- assert dec2ananas(value) == word
|
|
|
+ assert ananas_codec.encode(value) == word
|
|
|
|
|
|
|
|
|
def test_ananas_is_ananas(ananas_known):
|
|
|
- assert isananas(ananas_known[0])
|
|
|
+ assert ananas_codec.is_valid(ananas_known[0])
|
|
|
|
|
|
|
|
|
def test_ananas_is_only_ananas(ananas_known):
|
|
|
- assert not isribes(ananas_known[0])
|
|
|
- assert not isbanana(ananas_known[0])
|
|
|
- assert not isbanana(ananas_known[0])
|
|
|
+ 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 = banana2dec("banana")
|
|
|
+ banana = banana_codec.decode("banana")
|
|
|
assert banana != 42
|
|
|
assert banana == 2485
|