| 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 "<name>694</name>" in kml_text |
| assert "<name>694.0</name>" 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 "<name>S001</name>" in kml_text |
| assert f"<href>{icon_href}</href>" in kml_text |
| assert "<b>region:</b> North<br>" in kml_text |
| assert "-7.1,12.3,0.0" in kml_text |
|
|