Ejemplo n.º 1
0
    def test_ej_combinado_no_listo(self):
        """
        Calculamos 20/4 + (4 * 3) + 1. Reutilizamos el proceso de suma, sin
        antes resetearlo.
        """
        proceso_padre = Proceso(proc_id=1)
        f_suma = funciones_ponderadas['suma']
        proceso_suma = Proceso(proc_id=2, **f_suma)

        f_prod = funciones_ponderadas['prod']
        proceso_prod = Proceso(proc_id=3, **f_prod)

        f_div = funciones_ponderadas['div']
        proceso_div = Proceso(proc_id=4, **f_div)

        mi_prod = proceso_padre.enviar_pedido((4, 3), proceso_prod, 8)
        suma_parc = proceso_padre.enviar_pedido((mi_prod, 1), proceso_suma, 5)

        mi_div = proceso_padre.enviar_pedido((20, 4), proceso_div, 8)

        try:
            ret = proceso_padre.enviar_pedido((mi_div, suma_parc),
                                              proceso_suma, 5)
            self.assertTrue(False)
        except ProcesoNoListo:
            self.assertTrue(True)
Ejemplo n.º 2
0
    def test_no_termino_prod(self):
        """
        Calculamos 4 * 2. Se ejecuta el proceso un rato, no termina, y despues
        se vuelve a ejecutar y efectivamente termina.
        """
        proceso_padre = Proceso(proc_id=1)
        f_prod = funciones_ponderadas['prod']
        proceso_prod = Proceso(proc_id=2, **f_prod)
        result = proceso_padre.enviar_pedido((4, 2), proceso_prod, 5)

        self.assertEqual(result, None)
        self.assertEqual(proceso_prod.ya_use + 3, proceso_prod.rafaga)
        self.assertEqual(proceso_prod.estado, 'listo')

        result = proceso_padre.enviar_pedido((4, 2), proceso_prod, 3)
        self.assertEqual(result, 8)
        self.assertEqual(proceso_prod.ya_use, proceso_prod.rafaga)
        self.assertEqual(proceso_prod.estado, 'terminado')
Ejemplo n.º 3
0
    def test_termino_suma(self):
        """
        Calculamos normalmente 1 + 3
        """
        proceso_padre = Proceso(proc_id=1)
        f_suma = funciones_ponderadas['suma']
        proceso_suma = Proceso(proc_id=2, **f_suma)
        result = proceso_padre.enviar_pedido((1, 3), proceso_suma, 5)

        self.assertEqual(result, 4)
        self.assertEqual(proceso_suma.ya_use, proceso_suma.rafaga)
        self.assertEqual(proceso_suma.estado, 'terminado')
Ejemplo n.º 4
0
    def test_ej_combinado(self):
        """
        Calculamos 20/4 + (4 * 3) + 1
        """
        proceso_padre = Proceso(proc_id=1)
        f_suma = funciones_ponderadas['suma']
        proceso_suma = Proceso(proc_id=2, **f_suma)

        f_prod = funciones_ponderadas['prod']
        proceso_prod = Proceso(proc_id=3, **f_prod)

        f_div = funciones_ponderadas['div']
        proceso_div = Proceso(proc_id=4, **f_div)

        mi_prod = proceso_padre.enviar_pedido((4, 3), proceso_prod, 8)
        suma_parc = proceso_padre.enviar_pedido((mi_prod, 1), proceso_suma, 5)

        mi_div = proceso_padre.enviar_pedido((20, 4), proceso_div, 8)

        proceso_suma.reset()
        ret = proceso_padre.enviar_pedido((mi_div, suma_parc), proceso_suma, 5)

        self.assertEqual(ret, 18)
Ejemplo n.º 5
0
    def test_reset_div(self):
        """
        Calculamos 3 / 1. Y reseteamos
        """
        proceso_padre = Proceso(proc_id=1)
        f_div = funciones_ponderadas['div']
        proceso_div = Proceso(proc_id=2, **f_div)
        result = proceso_padre.enviar_pedido((3, 1), proceso_div, 8)

        self.assertEqual(result, 3)
        self.assertEqual(proceso_div.ya_use, proceso_div.rafaga)
        self.assertEqual(proceso_div.estado, 'terminado')

        proceso_div.reset()
        self.assertEqual(proceso_div.ya_use, 0)
        self.assertEqual(proceso_div.estado, 'listo')