Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test(feat): add fake city #93

Merged
merged 8 commits into from
Mar 13, 2025
Merged

Test(feat): add fake city #93

merged 8 commits into from
Mar 13, 2025

Conversation

ludovicdmt
Copy link
Member

@ludovicdmt ludovicdmt commented Mar 3, 2025

  • : fake-city un carré de 400m pour des tests plus simples à comprendre
  • : Ajustements pour fichiers de tests dans le cas où l'on a déjà en local un directory file_data
  • : Mieux gérer la création de .mvt de test

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
@ludovicdmt ludovicdmt requested a review from Marc-AntoineA March 3, 2025 09:39
@ludovicdmt ludovicdmt marked this pull request as ready for review March 3, 2025 09:39
Copy link
Contributor

@Marc-AntoineA Marc-AntoineA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

À discuter de pourquoi on a des tuiles entièrement en dehors de la ville.

self.assertTrue(df.tiles_generated.values)
self.assertEqual(Tile.objects.count(), 587)
self.assertEqual(Tile.objects.count(), 25)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci d’avoir écrit ce test.

Ça met en évidence mon incompréhesion dans la manière sont générées les tuiles.

En l’occurrence, on cherche à recouvrir un carré de 400 m avec un quadrillage de côté 200m. Si les coordonnées étaient parfaitement alignées sur la grille, on aurait seulement besoin de quatre tuiles.
mais comme ce n’est pas aligné dans notre cas, on a besoin de 3 tuiles en largeur, 3 tuiles en hauteur donc 3x3 = 9 tuiles en tout.

Je ne comprends pas à quel moment on a besoin de 25 tuiles.

Le problème vient de la fonction c02_init_grid.py::create_tiles_for_city où on fait

xmin, ymin, xmax, ymax = city_geom.bounds
xmin -= grid_size
ymin -= grid_size
xmax += grid_size
ymax += grid_size
# Bounds for the generation
xmin, ymin, xmax, ymax = tile_shape_cls.adjust_bounds(
      xmin, ymin, xmax, ymax, grid_size, side_length
  )

Peux-tu éclairer ma lanterne @ludovicdmt ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Les villes ont parfois des géométries bizarres qui créent des problèmes de bord aux frontières quand je crées pile le bon nombre. Ca fait des tuiles manquantes donc je prends de la marge un peu partout pour l'éviter.
Screenshot from 2025-03-06 17-30-20

C'est pas opti mais j'avoue que j'ai pas poussé le truc parce que c'est déjà beaucoup mieux que ce que j'ai récupéré au départ où l'on prennait juste un rectangle englobant de la ville donc encore beaucoup plus de tuiles en trop.

Il y dans c02_init_grid une étape finale qui supprime toutes les tuiles en doublon et celles qui sont hors de l'union de toutes les villes.

Néanmoins j'ai refait une passe pour limiter la création de tuiles en trop parce que je suis d'accord que c'était un peu abusé !

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne vois pas le rapport avec le reste de la PR.

Copy link
Member Author

@ludovicdmt ludovicdmt Mar 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En l'état si tu as déjà des .mvt générés par ailleurs, tu ne peux pas run les tests.
Ca a bloqué Maxime cette aprèm et moi aussi là parce que j'en avais donc j'ai corrigé.

J'ai rajouté ce point dans la description de la PR.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je comprenais le point, mais je ne comprends toujours pas pourquoi cela devait être ajouté dans cette MR. Globalement, je suis pour qu’on n'ajoute pas de nouvelles specs pour une MR relue, sauf si demandé par la revue.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai ajouté dans cette MR en me disant que cette MR était un run pour améliorer les tests de manière globale.

Cela étant dit, de rajouter fait trainer le merge. Je suis d'accord que c'était une mauvaise pratique de ma part de rajouter en cours de route et ça n'est pas à reproduire sur les prochaines.

Copy link
Contributor

@Marc-AntoineA Marc-AntoineA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay pour moi, c'est mieux !

@ludovicdmt ludovicdmt merged commit af7ac23 into dev Mar 13, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ETQ dev je veux des tests plus élémentaires pour la génération de grille
2 participants