import pandas as pd from utils.kml_creator import ( generate_kml_from_df, generate_site_kml_from_df, kml_color_to_rgba, sector_polygon_coordinates, ) def test_generate_kml_from_df_formats_integer_like_site_codes_without_decimal(): df = pd.DataFrame( [ { "code": 694.0, "name": "694_TEST", "Longitude": -7.1, "Latitude": 12.3, "Azimut": 30, "Hauteur": 40, "band": "G900", "color": "7fff0000", "size": 100, } ] ) kml_text = generate_kml_from_df(df).getvalue().decode("utf-8") assert "694" in kml_text assert "694.0" not in kml_text def test_sector_polygon_coordinates_closes_polygon(): row = { "Longitude": -7.1, "Latitude": 12.3, "Azimut": 90, "size": 100, } coords = sector_polygon_coordinates(row) assert len(coords) == 22 assert coords[0] == (-7.1, 12.3) assert coords[-1] == coords[0] def test_kml_color_to_rgba_converts_aabbggrr(): assert kml_color_to_rgba("7f0000ff") == [255, 0, 0, 127] assert kml_color_to_rgba("bad") == [31, 119, 180, 127] def test_generate_site_kml_from_df_exports_site_points_and_metadata(): df = pd.DataFrame( [ { "site": "S001", "lat": 12.3, "lon": -7.1, "region": "North", } ] ) icon_href = "http://maps.google.com/mapfiles/kml/shapes/star.png" kml_text = ( generate_site_kml_from_df(df, "site", "lat", "lon", icon_href=icon_href) .getvalue() .decode("utf-8") ) assert "S001" in kml_text assert f"{icon_href}" in kml_text assert "<b>region:</b> North<br>" in kml_text assert "-7.1,12.3,0.0" in kml_text