import docs.agro_indicators as agro_indicators
import datetime
import pandas as pd
import numpy as np


def compute_et0(
    df: pd.DataFrame,
    latitude: float,
    longitude: float
):
    """
    Compute reference evapotranspiration.

    Parameters
    ----------
    df : DataFrame
        The input dataframe containing sensor data.

    latitude : float
        Latitude of the location.
    longitude : float
        Longitude of the location

    Returns
    -------
    arraylike
        Daily reference evapotranspiration.
    """

    irradiance = df.irradiance
    Tmin = df.air_temperature_min
    Tmax = df.air_temperature_max
    T = (Tmin + Tmin) / 2
    RHmin = df.relative_humidity_min
    RHmax = df.relative_humidity_max
    WS = df.wind_speed
    JJulien = df.day_of_year

    l = agro_indicators.et0(
            irradiance,
            T,
            Tmax,
            Tmin,
            RHmin,
            RHmax,
            WS,
            JJulien,
            latitude,
            longitude,
        )

    return l


if __name__ == "__main__":
    data_test = pd.DataFrame()
    data_test["irradiance"] = [20, 30, 40]
    data_test["air_temperature_min"] = [10, 15, 20]
    data_test["air_temperature_max"] = [20, 25, 30]
    data_test["relative_humidity_min"] = [50, 60, 70]
    data_test["relative_humidity_max"] = [50, 60, 70]
    data_test["wind_speed"] = [5, 10, 15]
    data_test["day_of_year"] = [1, 32, 60]

    latitude = 40.7128
    longitude = 74.0060
    
    et0 = compute_et0(data_test, latitude, longitude)
    print(et0)