test_banana.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/usr/bin/env python
  2. """Tests for `banana` package."""
  3. import random
  4. import pytest
  5. from banana import BananaCodec
  6. banana_conversions = {
  7. "be": 1,
  8. "da": 10,
  9. "bema" : 100,
  10. "duga": 1000,
  11. "bibiva": 10000,
  12. "galopa": 100000,
  13. "bivucasa": 1000000,
  14. "beba": 70,
  15. "zu": 69,
  16. "bezu": 139,
  17. "nana": 2485,
  18. }
  19. @pytest.fixture(params=banana_conversions.items())
  20. def banana_known(request):
  21. yield request.param
  22. banana_codec = BananaCodec()
  23. def test_banana_to_dec_known(banana_known):
  24. word, value = banana_known
  25. assert banana_codec.decode(word) == value
  26. def test_dec_to_banana_known(banana_known):
  27. word, value = banana_known
  28. assert banana_codec.encode(value) == word
  29. def test_banana_is_banana(banana_known):
  30. assert banana_codec.is_valid(banana_known[0])
  31. def test_banana2dec_prefix_ba(banana_known):
  32. """un ba all'inizio non cambia nulla!"""
  33. word, value = banana_known
  34. for prefix in ("ba", "baba", "bababa"):
  35. assert banana_codec.decode(prefix + word) == value
  36. def test_answer_to_life_the_universe_and_everything():
  37. banana = banana_codec.decode("banana")
  38. assert banana != 42
  39. assert banana == 2485
  40. def test_random_len_0():
  41. assert banana_codec.random(minlength=0) == ""