Yo lo quise hacer de la manera mas profesional posible integrando pruebas unitarias para testear los metodos, y seria de la siguiente forma:
Archivo palindrome.py
:
"""Python module to know if a string is palindrome"""
def is_palindrome(string: str) -> bool:
"""Returns if the string is palindrome (True or False)"""
string = string.lower()
string = string.replace(' ', '')
return (string == string[::-1])
def run():
print(is_palindrome('Hola mundo!'))
if __name__ == '__main__':
run()
Archivo prime_number
:
"""Python module to know if a number is prime"""
def is_prime(number: int) -> bool:
"""Returns True if number is prime or False if the number is not prime"""
results_list = [x for x in range(2, number) if number % x == 0]
return len(results_list) == 0
def run():
number: int = 73
number_is_prime: bool = is_prime(number)
print(f'Is {number} a prime number? {number_is_prime}')
if __name__ == '__main__':
run()
Y aqui el archivo test.py
:
"""Testing the methods"""
import unittest
from unittest import TestCase
from palindrome import is_palindrome
from prime_number import is_prime
class TestingFunctions(TestCase):
"""Tests to know if the methods works well"""
def test_is_palindrome(self):
"""Testing is_palindrome method"""
self.assertEqual(is_palindrome('Ligar es ser agil'), True)
self.assertEqual(is_palindrome('Arepera'), True)
self.assertEqual(is_palindrome('Esto no es un palindromo'), False)
self.assertEqual(is_palindrome('ESto tampoco es un palindromo'), False)
self.assertEqual(is_palindrome('Ana'), True)
def test_is_prime(self):
"""Testing is_prime method"""
self.assertEqual(is_prime(100), False)
self.assertEqual(is_prime(200), False)
self.assertEqual(is_prime(53), True)
self.assertEqual(is_prime(23), True)
self.assertEqual(is_prime(45), False)
self.assertEqual(is_prime(32), False)
self.assertEqual(is_prime(142), False)
if __name__ == '__main__':
unittest.main()
Y por ultimo los resultados de los tests:
..
----------------------------------------------------------------------
Ran 2 tests in 0.001s
OK
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.