def test_central_meteorologica_devuelve_pronostico(self): desde = FechaYHora(date(2014, 9, 21), time(10, 45, 50)) hasta = FechaYHora(date(2014, 9, 21), time(12, 45, 50)) predictor = PredictorMeteorologicoMock( TemperaturaEnCelsius(25), Porcentaje(40), HumedadRelativa(Porcentaje(10)), LuzEnLux(800)) central = CentralMeteorologica(predictor, None) self.assertIsNone(central.ultimoPronostico()) pronostico = central.obtenerPronostico(desdeFechaYHora=desde, cantidadDeHs=2) self.assertEqual(desde, pronostico.fechaInicio()) self.assertEqual(hasta, pronostico.fechaFin()) prediccion1 = pronostico.prediccionPara( FechaYHora(date(2014, 9, 21), time(11, 40, 50))) self.assertEqual(Rango(desde, desde.agregarDuracion(DuracionEnHoras(1))), prediccion1.lapso()) self.assertEqual(TemperaturaEnCelsius(25), prediccion1.temperatura()) self.assertEqual(Porcentaje(40), prediccion1.probabilidadDeLluvia()) self.assertEqual(HumedadRelativa(Porcentaje(10)), prediccion1.humedad()) self.assertEqual(LuzEnLux(800), prediccion1.luzAmbiente()) prediccion2 = pronostico.prediccionPara( FechaYHora(date(2014, 9, 21), time(12, 40, 50))) self.assertEqual(Rango(desde.agregarDuracion(DuracionEnHoras(1)), hasta), prediccion2.lapso()) self.assertEqual(TemperaturaEnCelsius(25), prediccion2.temperatura()) self.assertEqual(Porcentaje(40), prediccion2.probabilidadDeLluvia()) self.assertEqual(HumedadRelativa(Porcentaje(10)), prediccion2.humedad()) self.assertEqual(LuzEnLux(800), prediccion2.luzAmbiente())
def main(argv): cmd = None try: opts, args = getopt.getopt(argv, "hc:") except getopt.GetoptError: mensajeAyuda() sys.exit() for opt, arg in opts: if opt == '-c' and arg in comandosValidos: cmd = arg else: mensajeAyuda() sys.exit() if cmd is None: mensajeAyuda() sys.exit() predictor = PredictorMeteorologicoPorArchivo( DispositivoDeLecturaArchivo("devices/pronostico")) reloj = ProveedorDeTiempoPorArchivo( DispositivoDeLecturaArchivo("devices/tiempo")) central = CentralMeteorologica(predictor, reloj) if cmd == 'pronostico': horas = 24 desdeFechaYHora = FechaYHora(datetime.date(2014, 9, 27), datetime.time(11, 0, 0)) pronostico = central.obtenerPronostico(desdeFechaYHora, horas) t = desdeFechaYHora for _ in range(0, horas): p = pronostico.prediccionPara(t) print(('El pronóstico para {4} es: \n' 'Temperatura: {0}, Humedad: {1}, ' 'Prob. de lluvia: {2}, Luz ambiente: {3}') .format(p.temperatura(), p.humedad(), p.probabilidadDeLluvia(), p.luzAmbiente(), p.lapso())) t = t.agregarHoras(1) elif cmd == 'sensores': # TODO print("No implementado.") elif cmd == 'tiempo': t = central.obtenerFechaYHora() print(t)
def test_central_meteorologica_devuelve_pronostico(self): desde = FechaYHora(date(2014, 9, 21), time(10, 45, 50)) hasta = FechaYHora(date(2014, 9, 21), time(12, 45, 50)) predictor = PredictorMeteorologicoMock(TemperaturaEnCelsius(25), Porcentaje(40), HumedadRelativa(Porcentaje(10)), LuzEnLux(800)) central = CentralMeteorologica(predictor, None) self.assertIsNone(central.ultimoPronostico()) pronostico = central.obtenerPronostico(desdeFechaYHora=desde, cantidadDeHs=2) self.assertEqual(desde, pronostico.fechaInicio()) self.assertEqual(hasta, pronostico.fechaFin()) prediccion1 = pronostico.prediccionPara( FechaYHora(date(2014, 9, 21), time(11, 40, 50))) self.assertEqual( Rango(desde, desde.agregarDuracion(DuracionEnHoras(1))), prediccion1.lapso()) self.assertEqual(TemperaturaEnCelsius(25), prediccion1.temperatura()) self.assertEqual(Porcentaje(40), prediccion1.probabilidadDeLluvia()) self.assertEqual(HumedadRelativa(Porcentaje(10)), prediccion1.humedad()) self.assertEqual(LuzEnLux(800), prediccion1.luzAmbiente()) prediccion2 = pronostico.prediccionPara( FechaYHora(date(2014, 9, 21), time(12, 40, 50))) self.assertEqual( Rango(desde.agregarDuracion(DuracionEnHoras(1)), hasta), prediccion2.lapso()) self.assertEqual(TemperaturaEnCelsius(25), prediccion2.temperatura()) self.assertEqual(Porcentaje(40), prediccion2.probabilidadDeLluvia()) self.assertEqual(HumedadRelativa(Porcentaje(10)), prediccion2.humedad()) self.assertEqual(LuzEnLux(800), prediccion2.luzAmbiente())
def test_central_meteorologica_devuelve_fechaYHora(self): fechaYHora = FechaYHora(date(2014, 9, 21), time(10, 45, 50)) proveedorDeTiempo = ProveedorDeTiempoMock(fechaYHora) central = CentralMeteorologica(None, proveedorDeTiempo) self.assertEqual(fechaYHora, central.obtenerFechaYHora())