예제 #1
0
def caudal_volume(volumen=None, tiempo=None, type_volumen='m3', type_tiempo='s'):
    """Calculo de caudal en funcion del volumen desplazado y el tiempo medido
    volumen: volumen que se encuentra en circulacion, se tiene predefinido en m³(metros cubicos).
    type_volumen: unidades en que se sumistra el dato volumen.
    tiempo: periodo de tiempo en el que circula el volumen dada, predefinido en s(segundos).
    type_tiempo: Unidades en que se suministra el dato del tiempo.
    vector: si es True convierte el dato suministrado en un numpy array para seguir operando
    ejemplo:
    v = 5
    t = 2
    q = caudal(volumen=v, tiempo=t)
    print(q)
    >>>2.5 'm3/s'
    """
    if isinstance(tiempo, (float, int)):
        if isinstance(volumen, (float, int)):
            volumen = Unidades(volumen, dtype=type_volumen)
        else:
            volumen = mecanica_fisica.distancia_euclidea(volumen)
            volumen = Unidades(volumen, dtype=type_volumen)
        tiempo = Unidades(tiempo, dtype=type_tiempo)
        #q = Unidades(volumen.valor/tiempo.valor, dtype=f"{volumen.dtype}/{tiempo.dtype}")
        return volumen/tiempo
    else:
        raise ValueError('No considero el tiempo como un vector.')
예제 #2
0
def caudal_area(area=None, velocidad=None, type_area='m2', type_velocidad='m/s2'):
    """Cálculo del caudal en función de la velocidad y el area transversal
    area: default m2 referidos al area de la seccin por la cual circula fluido.
    velocidad: default m/s2 referido a la velocidad medida a la cual se desplaza el fluido
    """
    if isinstance(area, (float, int)) and isinstance(velocidad, (float, int)):
        area = Unidades(area, dtype=type_area)
        velocidad = Unidades(velocidad, type_velocidad)
        return area*velocidad
예제 #3
0
    def test_decorador(self):
        @convert_live(u_s='km')
        def sumar(a: Unidades, b: Unidades):
            return a + b

        uno = Unidades(5, dtype='m')
        dos = Unidades(5, dtype='m')
        suma = sumar(uno, dos)
        self.assertEqual(suma.valor, 0.01, msg='Test decorador valor')
        self.assertEqual(suma.dtype, 'km', msg='Test decorador dtype')
예제 #4
0
def escalar(valor, u_s: str, u_e: str = None) -> Unidades:
    """Funcion para redimensionar segun las escalas preestablecidas en el documento valores.py
    valor: int, float, class Unidades, indiferentemente del valor de entrada la salida sera del type class Unidades
    u_s: Unidad a la cual se desea hacer la conversión de escala.
    u_e: default None, cuando el parametro 'valor' suministrado es del type Unidades se identifica automaticamente el
        tipo de datos de entrada, en caso contrario debe suministrarse

    Ejemplo 1:
    numero = 25
    escala = escalar(numero, u_e='m', u_s='km')
    :return 0.025 km

    Ejemplo 2:
    numero = Unidades(25, dtype='m')
    escala = escalar(numero, u_s='km')
    :return 0.025 km
    """
    if isinstance(valor, Unidades):
        dtypes = str(valor.dtype) + '-' + u_s
        valor.dtype = u_s
        return valor * escalas[dtypes]
    else:
        valor = valor * escalas[u_e + '-' + u_s]
        return Unidades(valor, dtype=u_s)
예제 #5
0
 def test_Unidades(self):
     a = Unidades(valor=1, dtype='m')
     self.assertEqual(a.valor, 1, msg='Test unidades valor')
     self.assertEqual(a.dtype, 'm', msg='Test unidades dtype')
예제 #6
0
 def test_escalar(self):
     m = Unidades(0.3048, 'm')
     pies = escalar(m, 'pies')
     self.assertEqual(pies.dtype, 'pies', msg='test_escalar dtype')
     self.assertEqual(round(pies.valor, 4), 1, msg='test_escalar valor')
예제 #7
0
def presion(fuerza=None, area=None, type_area='m2', type_fuerza='N'):
    """Calculo de la presion ejercida sobre una superficie"""
    if isinstance(fuerza, (float, int)) and isinstance(area, (float, int)):
        fuerza = Unidades(fuerza, dtype=type_fuerza)
        area = Unidades(area, dtype=type_area)
        return fuerza/area
예제 #8
0
    :return 0.025 km

    Ejemplo 2:
    numero = Unidades(25, dtype='m')
    escala = escalar(numero, u_s='km')
    :return 0.025 km
    """
    if isinstance(valor, Unidades):
        dtypes = str(valor.dtype) + '-' + u_s
        valor.dtype = u_s
        return valor * escalas[dtypes]
    else:
        valor = valor * escalas[u_e + '-' + u_s]
        return Unidades(valor, dtype=u_s)


if __name__ == '__main__':
    numero = Unidades(25, dtype='m')
    escala = escalar(numero, u_s='km')
    print(escala, type(escala))
    print(escalar(1, u_e='pies', u_s='m'))

    @convert_live(u_s='km')
    def sumar(a: Unidades, b: Unidades):
        return a + b

    uno = Unidades(5, dtype='m')
    dos = Unidades(5, dtype='m')
    F = sumar(uno, dos, 3)
    print(F.dtype)