test_banana.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. #!/usr/bin/env python
  2. """Tests for `banana` package."""
  3. import pytest
  4. from banana import (ananas2dec, avocado2dec, banana2dec, dec2ananas,
  5. dec2avocado, dec2banana, dec2ribes, isananas, isavocado,
  6. isbanana, isribes, ribes2dec)
  7. banana_conversions = {"be": 1, "beba": 70, "zu": 69, "bezu": 139, "nana": 2485}
  8. @pytest.fixture(params=banana_conversions.items())
  9. def banana_known(request):
  10. yield request.param
  11. avocado_conversions = {
  12. "a": 0,
  13. "aca": 5,
  14. "ada": 10,
  15. "afa": 15,
  16. "aga": 20,
  17. "ala": 25,
  18. "ama": 30,
  19. "ana": 35,
  20. "apa": 40,
  21. "ara": 45,
  22. "asa": 50,
  23. "ata": 55,
  24. "ava": 60,
  25. "aza": 65,
  26. "eba": 70,
  27. "eca": 75,
  28. "eda": 80,
  29. "efa": 85,
  30. "ega": 90,
  31. }
  32. @pytest.fixture(params=avocado_conversions.items())
  33. def avocado_known(request):
  34. yield request.param
  35. ribes_conversions = {"b": 0, "c": 1, "z": 13, "beb": 14, "bec": 15}
  36. @pytest.fixture(params=ribes_conversions.items())
  37. def ribes_known(request):
  38. yield request.param
  39. ananas_conversions = {
  40. "ac": 1,
  41. "al": 5,
  42. "as": 10,
  43. "ec": 15,
  44. "em": 20,
  45. "et": 25,
  46. "id": 30,
  47. "in": 35,
  48. "iv": 40,
  49. "of": 45,
  50. "op": 50,
  51. "oz": 55,
  52. "ug": 60,
  53. "ur": 65,
  54. "acab": 70,
  55. "acal": 75,
  56. "acas": 80,
  57. "acec": 85,
  58. "acem": 90,
  59. }
  60. @pytest.fixture(params=ananas_conversions.items())
  61. def ananas_known(request):
  62. yield request.param
  63. def test_banana_to_dec_known(banana_known):
  64. word, value = banana_known
  65. assert banana2dec(word) == value
  66. def test_dec_to_banana_known(banana_known):
  67. word, value = banana_known
  68. assert dec2banana(value) == word
  69. def test_banana_is_banana(banana_known):
  70. assert isbanana(banana_known[0])
  71. def test_banana_is_only_banana(banana_known):
  72. assert not isribes(banana_known[0])
  73. assert not isananas(banana_known[0])
  74. assert not isavocado(banana_known[0])
  75. def test_banana2dec_prefix_ba(banana_known):
  76. """un ba all'inizio non cambia nulla!"""
  77. word, value = banana_known
  78. for prefix in ("ba", "baba", "bababa"):
  79. assert banana2dec(prefix + word) == value
  80. def test_ribes_to_dec_known(ribes_known):
  81. word, value = ribes_known
  82. assert ribes2dec(word) == value
  83. def test_dec_to_ribes_known(ribes_known):
  84. word, value = ribes_known
  85. assert dec2ribes(value) == word
  86. def test_ribes_is_ribes(ribes_known):
  87. assert isribes(ribes_known[0])
  88. def test_ribes_is_only_ribes(ribes_known):
  89. assert not isbanana(ribes_known[0])
  90. assert not isananas(ribes_known[0])
  91. assert not isavocado(ribes_known[0])
  92. def test_avocado_to_dec_known(avocado_known):
  93. word, value = avocado_known
  94. assert avocado2dec(word) == value
  95. def test_dec_to_avocado_known(avocado_known):
  96. word, value = avocado_known
  97. assert dec2avocado(value) == word
  98. def test_avocado_is_avocado(avocado_known):
  99. assert isavocado(avocado_known[0])
  100. def test_avocado_is_only_avocado(avocado_known):
  101. assert not isribes(avocado_known[0])
  102. assert not isananas(avocado_known[0])
  103. assert not isbanana(avocado_known[0])
  104. def test_ananas_to_dec_known(ananas_known):
  105. word, value = ananas_known
  106. assert ananas2dec(word) == value
  107. def test_dec_to_ananas_known(ananas_known):
  108. word, value = ananas_known
  109. assert dec2ananas(value) == word
  110. def test_ananas_is_ananas(ananas_known):
  111. assert isananas(ananas_known[0])
  112. def test_ananas_is_only_ananas(ananas_known):
  113. assert not isribes(ananas_known[0])
  114. assert not isbanana(ananas_known[0])
  115. assert not isbanana(ananas_known[0])
  116. def test_answer_to_life_the_universe_and_everything():
  117. banana = banana2dec("banana")
  118. assert banana != 42
  119. assert banana == 2485