from schemas import AccelerometerData, AgentData, GpsData, ProcessedAgentData

import main

def _test_ProcessedAgentData_to_td():
    processed_data_batch = [
            ProcessedAgentData(road_state = "normal",
                               agent_data = AgentData(user_id = 1,
                                                      accelerometer = AccelerometerData(x = 0.1, y = 0.2, z = 0.3),
                                                      gps = GpsData(latitude = 10.123, longitude = 20.456),
                                                      timestamp = "2023-07-21T12:34:56Z")
            ),
            ProcessedAgentData(road_state = "normal",
                               agent_data = AgentData(user_id = 2,
                                                      accelerometer = AccelerometerData(x = 0.1, y = 0.2, z = 0.3),
                                                      gps = GpsData(latitude = 10.123, longitude = 20.456),
                                                      timestamp = "2023-07-21T12:34:56Z")
            ),
            ProcessedAgentData(road_state = "normal",
                               agent_data = AgentData(user_id = 3,
                                                      accelerometer = AccelerometerData(x = 0.1, y = 0.2, z = 0.3),
                                                      gps = GpsData(latitude = 10.123, longitude = 20.456),
                                                      timestamp = "2023-07-21T12:34:56Z")
            ),
    ]

    res = main.ProcessedAgentData_to_td(processed_data_batch)

    assert res[0]["user_id"] == 1
    assert res[1]["user_id"] == 2
    assert res[2]["user_id"] == 3


if __name__ == "__main__":
    test_functions = [i for i in dir() if i.startswith('_test_')]

    for i in test_functions:
        print(i)
        eval(i)()
