Skip to content

Latest commit

 

History

History
339 lines (237 loc) · 12.6 KB

Quiz6.rst

File metadata and controls

339 lines (237 loc) · 12.6 KB

Quiz - 6

.. tabbed:: quiz6

   .. tab:: Ejercicio 1

      .. activecode:: q6_1
         :nocodelens:

         Desarrolle la función ``dormir`` que toma dos parámetros,
         ``dia_semana`` y ``dia_festivo``. Ambos parámetros toman
         valores booleanos, es decir pueden ser ``True`` o ``False``. La función actúa
         de la siguiente manera: usted puede dormir cuando sea día festivo
         o cuando no sea un día entre semana. ``dormir`` devolverá ``True``
         o ``False`` si usted va a dormir o no. |br| |br|
         Ejemplos: |br|
         ``dormir(False, False)`` -> ``True`` |br|
         ``dormir(True, False)`` -> ``False`` |br|

         ~~~~
         def dormir(dia_semana, dia_festivo):


         ====
         from unittest.gui import TestCaseGui


         class myTests(TestCaseGui):
            def testOne(self):
               self.assertEqual(dormir(False, False), True, "Excelente! obtenido: True esperado: True")
               self.assertEqual(dormir(True, False), False, "Excelente! obtenido: False esperado: False")
               self.assertEqual(dormir(False, True), True, "Excelente! obtenido: True esperado: True")
               self.assertEqual(dormir(True, True), True, "Excelente! obtenido: True esperado: True")


         myTests().main()


   .. tab:: Ejercicio 2

      .. activecode:: q6_2
         :nocodelens:

         Desarrolle la función ``alumnos_en_problemas`` que toma dos parámetros,
         ``a_sonrie`` y ``b_sonrie``. a y b representan dos estudiantes.
         ``a_sonrie`` y ``b_sonrie`` indican si a y b sonríen. Cuando ambos
         sonríen o ambos no están sonriendo tenemos problemas. ``alumnos_en_problemas``
         debe devolver ``True`` cuando hay problemas. De lo contrario, devolverá ``False``.
         |br| |br|
         Ejemplos: |br|
         ``alumnos_en_problemas(True, True)`` -> ``True`` |br|
         ``alumnos_en_problemas(False, True)`` -> ``False`` |br|

         ~~~~
         def alumnos_en_problemas(a_sonrie, b_sonrie):


         ====
         from unittest.gui import TestCaseGui


         class myTests(TestCaseGui):
            def testOne(self):
               self.assertEqual(alumnos_en_problemas(True, True), True, "Esperado: True")
               self.assertEqual(alumnos_en_problemas(False, False), True, "Esperado: True")
               self.assertEqual(alumnos_en_problemas(True, False), False, "Esperado: False")
               self.assertEqual(alumnos_en_problemas(False, True), False, "Esperado: False")


         myTests().main()


   .. tab:: Ejercicio 3

      .. activecode:: q6_3
         :nocodelens:

         Desarrolle la función ``suma_doble`` que toma dos parámetros, ``a`` y ``b``.
         Ambos son números enteros. La función debe devolver la suma de ``a`` y ``b``.
         Sin embargo, si los números son iguales, devuelve el doble de la suma. |br| |br|
         Ejemplos: |br|
         ``suma_doble(1, 2)`` -> ``3`` |br|
         ``suma_doble(2, 2)`` -> ``8`` |br|

         ~~~~
         def suma_doble(a, b):


         ====
         from unittest.gui import TestCaseGui


         class myTests(TestCaseGui):
            def testOne(self):
               self.assertEqual(suma_doble(1, 2), 3, "Excelente! obtenido: 3 esperado: 3")
               self.assertEqual(suma_doble(3, 2), 5, "Excelente! obtenido: 5 esperado: 5")
               self.assertEqual(suma_doble(2, 2), 8, "Excelente! obtenido: 8 esperado: 8")
               self.assertEqual(suma_doble(-1, 0), -1, "Excelente! obtenido: -1 esperado: -1")
               self.assertEqual(suma_doble(0, 0), 0, "Excelente! obtenido: 0 esperado: 0")
               self.assertEqual(suma_doble(0, 1), 1, "Excelente! obtenido: 1 esperado: 1")


         myTests().main()


   .. tab:: Ejercicio 4

      .. activecode:: q6_4
         :nocodelens:

         Desarrolle la función ``diferencia_absoluta_21`` que toma un parámetro, ``n``,
         y devuelve la diferencia absoluta entre ``n`` y 21 solo si ``n`` es menor
         o igual a 21. Si es mayor, entonces devuelve el doble de la diferencia
         absoluta entre el número y 21. **Recuerde**: ``abs(x)`` devuelve
         el valor absoluto de x. |br| |br|
         Ejemplos: |br|
         ``diferencia_absoluta_21(19)`` -> ``2`` |br|
         ``diferencia_absoluta_21(25)`` -> ``8`` |br|

         ~~~~
         def diferencia_absoluta_21(n):


         ====
         from unittest.gui import TestCaseGui


         class myTests(TestCaseGui):
            def testOne(self):
               self.assertEqual(diferencia_absoluta_21(19), 2, "Esperado: 2")
               self.assertEqual(diferencia_absoluta_21(10), 11, "Esperado: 11")
               self.assertEqual(diferencia_absoluta_21(21), 0, "Esperado: 0")
               self.assertEqual(diferencia_absoluta_21(22), 2, "Esperado: 2")
               self.assertEqual(diferencia_absoluta_21(25), 8, "Esperado: 8")
               self.assertEqual(diferencia_absoluta_21(30), 18, "Esperado: 18")


         myTests().main()


   .. tab:: Ejercicio 5

      .. activecode:: q6_5
         :nocodelens:

         Desarrolle la función ``problemas_con_loro`` que toma dos parámetros,
         ``hablando`` que puede ser ``True`` o ``False``, y ``hora`` que toma un valor
         entre 0 y 23. Tenemos un loro, y hay problemas si el loro está hablando
         antes de las 7 horas o después de las 20 horas. Devolver ``True`` si hay
         problemas o ``False`` si no los hay. |br| |br|
         Ejemplos: |br|
         ``problemas_con_loro(True, 6)`` -> ``True`` |br|
         ``problemas_con_loro(True, 20)`` -> ``False`` |br|

         ~~~~
         def problemas_con_loro(hablando, hora):


         ====
         from unittest.gui import TestCaseGui


         class myTests(TestCaseGui):
            def testOne(self):
               self.assertEqual(problemas_con_loro(True, 6), True, "Esperado: True")
               self.assertEqual(problemas_con_loro(True, 7), False, "Esperado: False")
               self.assertEqual(problemas_con_loro(True, 21), True, "Esperado: True")
               self.assertEqual(problemas_con_loro(True, 23), True, "Esperado: True")
               self.assertEqual(problemas_con_loro(True, 20), False, "Esperado: False")
               self.assertEqual(problemas_con_loro(False, 6), False, "Esperado: False")
               self.assertEqual(problemas_con_loro(False, 21), False, "Esperado: False")


         myTests().main()


   .. tab:: Ejercicio 6

      .. activecode:: q6_6
         :nocodelens:

         Desarrolle la función ``es_diez`` que toma dos parámetros, ``a`` y ``b``.
         Devuelve ``True`` si uno de los parámetros es 10, o si la suma de ambos
         es 10. De lo contrario, devuelve ``False``. |br| |br|
         Ejemplos: |br|
         ``es_diez(9,10)`` -> ``True`` |br|
         ``es_diez(1,9)`` -> ``True`` |br|
         ``es_diez(8,3)`` -> ``False`` |br|

         ~~~~
         def es_diez(a, b):


         ====
         from unittest.gui import TestCaseGui


         class myTests(TestCaseGui):
            def testOne(self):
               self.assertEqual(es_diez(9, 10), True, "Esperado: True")
               self.assertEqual(es_diez(9, 9), False, "Esperado: False")
               self.assertEqual(es_diez(1, 9), True, "Esperado: True")
               self.assertEqual(es_diez(10, 1), True, "Esperado: True")
               self.assertEqual(es_diez(10, 10), True, "Esperado: True")
               self.assertEqual(es_diez(8, 2), True, "Esperado: True")
               self.assertEqual(es_diez(8, 3), False, "Esperado: False")
               self.assertEqual(es_diez(10, 42), True, "Esperado: True")
               self.assertEqual(es_diez(12, -2), True, "Esperado: True")


         myTests().main()


   .. tab:: Ejercicio 7

      .. activecode:: q6_7
         :nocodelens:

         Desarrolle la función ``distancia_10`` que toma a ``n``
         como parámetro, el cual es un número entero. Devuelve ``True`` si
         la diferencia absoluta entre ``n`` y 100 o ``n`` y 200 es menor o
         igual que 10. |br| |br|
         Ejemplos: |br|
         ``distancia_10(93)`` -> ``True`` |br|
         ``distancia_10(90)`` -> ``True`` |br|
         ``distancia_10(89)`` -> ``False`` |br|
         ``distancia_10(210)`` -> ``True`` |br|
         ``distancia_10(211)`` -> ``False`` |br|

         ~~~~
         def distancia_10(n):


         ====
         from unittest.gui import TestCaseGui


         class myTests(TestCaseGui):
            def testOne(self):
               self.assertEqual(distancia_10(93), True, "Esperado: True")
               self.assertEqual(distancia_10(90), True, "Esperado: True")
               self.assertEqual(distancia_10(89), False, "Esperado: False")
               self.assertEqual(distancia_10(110), True, "Esperado: True")
               self.assertEqual(distancia_10(111), False, "Esperado: False")
               self.assertEqual(distancia_10(121), False, "Esperado: False")
               self.assertEqual(distancia_10(0), False, "Esperado: False")
               self.assertEqual(distancia_10(5), False, "Esperado: False")
               self.assertEqual(distancia_10(191), True, "Esperado: True")
               self.assertEqual(distancia_10(189), False, "Esperado: False")
               self.assertEqual(distancia_10(190), True, "Esperado: True")
               self.assertEqual(distancia_10(200), True, "Esperado: True")
               self.assertEqual(distancia_10(210), True, "Esperado: True")
               self.assertEqual(distancia_10(211), False, "Esperado: False")
               self.assertEqual(distancia_10(290), False, "Esperado: False")


         myTests().main()


   .. tab:: Ejercicio 8

      .. activecode:: q6_8
         :nocodelens:

         Desarrolle la función ``remover_iesimo`` que recibe una cadena ``s`` no vacía
         y un entero positivo ``i``, y devuelva la cadena original sin el i-ésimo carácter.
         |br| |br|
         Ejemplos: |br|
         ``remover_iesimo("Hello", 1)`` -> ``"ello"`` |br|
         ``remover_iesimo("Hi", 2)`` -> ``"H"`` |br|
         ``remover_iesimo("PyZombiess", 10)`` -> ``"PyZombies"`` |br|

         ~~~~
         def remover_iesimo(s, i):


         ====
         from unittest.gui import TestCaseGui


         class myTests(TestCaseGui):
            def testOne(self):
               self.assertEqual(quitar_caracter("Hi", 0), "i", "Esperado: i")
               self.assertEqual(quitar_caracter("Hi", 1), "H", "Esperado: H")
               self.assertEqual(quitar_caracter("code", 0), "ode", "Esperado: ode")
               self.assertEqual(quitar_caracter("code", 1), "cde", "Esperado: cde")
               self.assertEqual(quitar_caracter("code", 2), "coe", "Esperado: coe")
               self.assertEqual(quitar_caracter("code", 3), "cod", "Esperado: cod")
               self.assertEqual(quitar_caracter("gatito", 1), "gtito", "Esperado: gtito")
               self.assertEqual(quitar_caracter("gatito", 0), "atito", "Esperado: atito")
               self.assertEqual(quitar_caracter("gatito", 4), "gatio", "Esperado: gatio")
               self.assertEqual(quitar_caracter("chocolate", 8), "chocolat", "Esperado: chocolat")


         myTests().main()


   .. tab:: Ejercicio 9

      .. activecode:: q6_9
         :nocodelens:

         Desarrolle la función ``intercambiar`` que toma a ``s`` como parámetro,
         representando una cadena. Si ``s`` tiene un tamaño menor o igual a 1, se
         devuelve la misma cadena. De lo contrario, la primera y última letra de ``s``
         se intercambian. |br| |br|
         Ejemplos: |br|
         ``intercambiar("codigo")`` -> ``"oodigc"`` |br|
         ``intercambiar("a")`` -> ``"a"`` |br|
         ``intercambiar("ab")`` -> ``"ba"`` |br|

         ~~~~
         def intercambiar(s):


         ====
         from unittest.gui import TestCaseGui


         class myTests(TestCaseGui):
            def testOne(self):
               self.assertEqual(intercambiar("code"), "eodc", "Esperado: eodc")
               self.assertEqual(intercambiar("a"), "a", "Esperado: a")
               self.assertEqual(intercambiar("ab"), "ba", "Esperado: ba")
               self.assertEqual(intercambiar("abc"), "cba", "Esperado: cba")
               self.assertEqual(intercambiar(" "), " ", "Esperado: ' '")
               self.assertEqual(intercambiar("nythoP"), "Python", "Esperado: Python")
               self.assertEqual(intercambiar("hello"), "oellh", "Esperado: oellh")
               self.assertEqual(intercambiar("Chocolate"), "ehocolatC", "Esperado: ehocolatC")


         myTests().main()