"""Test backtracking calcluation of single-axis trackers on rolling terrain."""

from variable_terrain_backtracking import backtracking_theta_1
import pandas as pd
import numpy as np

# Import test cases
df_bt = pd.read_csv('cases_bactracking.csv', dtype={'Case': int})

# Iterate over test case
for _, d in df_bt.iterrows():
    p = d['x_L'] - d['x_R']  # note the positive x-direction is to the left
    beta_c = np.rad2deg(np.arctan((d['z_R'] - d['z_L']) / (d['x_L'] - d['x_R'])))

    theta_1_calculated = backtracking_theta_1(
        d['f_s'], d['theta_2'], d['theta_s'], p, beta_c, d['l'], d['z_0'],
    )

    assert round(theta_1_calculated, 6) == d['theta_1']
