1
0

test_banana.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/usr/bin/env python
  2. """Tests for `banana` package."""
  3. import pytest
  4. from banana import (avocado2dec, banana2dec, dec2avocado, dec2banana,
  5. dec2ribes, ribes2dec)
  6. banana_conversions = {
  7. "ba": 0,
  8. "baba": 0,
  9. "be": 1,
  10. "beba": 70,
  11. "zu": 69,
  12. "bezu": 139,
  13. "nana": 2485,
  14. "banana": 2485,
  15. }
  16. avocado_conversions = {
  17. "a": 0,
  18. "aca": 5,
  19. "ada": 10,
  20. "afa": 15,
  21. "aga": 20,
  22. "ala": 25,
  23. "ama": 30,
  24. "ana": 35,
  25. "apa": 40,
  26. "ara": 45,
  27. "asa": 50,
  28. "ata": 55,
  29. "ava": 60,
  30. "aza": 65,
  31. "eba": 70,
  32. "eca": 75,
  33. "eda": 80,
  34. "efa": 85,
  35. "ega": 90,
  36. }
  37. ribes_conversions = {"b": 0, "c": 1, "z": 13, "beb": 14, "bec": 15}
  38. @pytest.fixture(params=ribes_conversions.items())
  39. def ribes_known(request):
  40. yield request.param
  41. def test_banana_to_dec_known():
  42. for word, value in banana_conversions.items():
  43. assert banana2dec(word) == value
  44. def test_banana2dec_prefix_ba():
  45. """un ba all'inizio non cambia nulla!"""
  46. for word in banana_conversions:
  47. value = banana2dec(word)
  48. for prefix in ("ba", "baba", "bababa"):
  49. assert banana2dec(prefix + word) == value
  50. def test_dec_to_banana_known():
  51. for word, value in banana_conversions.items():
  52. if word.startswith("ba"):
  53. continue
  54. assert dec2banana(value) == word
  55. def test_ribes_to_dec_known(ribes_known):
  56. word, value = ribes_known
  57. assert ribes2dec(word) == value
  58. def test_dec_to_ribes_known():
  59. for word, value in ribes_conversions.items():
  60. assert dec2ribes(value) == word
  61. def test_avocado_to_dec_known():
  62. for word, value in avocado_conversions.items():
  63. assert avocado2dec(word) == value
  64. def test_dec_to_avocado_known():
  65. for word, value in avocado_conversions.items():
  66. assert dec2avocado(value) == word
  67. def test_answer_to_life_the_universe_and_everything():
  68. banana = banana2dec("banana")
  69. assert banana != 42
  70. assert banana == 2485