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

Tests that need to be written #48

Open
hjabbot opened this issue Mar 21, 2024 · 5 comments
Open

Tests that need to be written #48

hjabbot opened this issue Mar 21, 2024 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@hjabbot
Copy link
Collaborator

hjabbot commented Mar 21, 2024

The existing tests are old an need updating. This issue is meant to be a place to host a list of tests we should implement. We should also prune through the existing tests to see what's necessary or redundant.

We can also create a bash script to automatically figure out what tests to run, and then run them, without us having to figure it out manually

@hjabbot hjabbot added the enhancement New feature or request label Mar 21, 2024
@hjabbot
Copy link
Collaborator Author

hjabbot commented Mar 21, 2024

Merging meshes

  • Corner to corner
  • Side to side
  • Corner to side
  • Side to corner
  • Side to larger side
  • Side to smaller side

@hjabbot
Copy link
Collaborator Author

hjabbot commented Mar 21, 2024

Antimeridian

  • Correctly aggregates data
  • Correctly creates neighbour graph
  • Also check global mesh as special case

@hjabbot
Copy link
Collaborator Author

hjabbot commented Mar 21, 2024

Vector splitting

  • Doesn't split open water
  • Splits areas of high curl
  • Doesn't split "visually curly" areas that have zero curl mathematically

@hjabbot
Copy link
Collaborator Author

hjabbot commented Mar 21, 2024

Dataloaders

  • Validation of meshed representation of that data using @SamuelHall700's mesh validator
  • Individual dataloader tests for real data in a private repo to avoid licensing issues
  • LUT dataloader splitting

@SamuelHall700 SamuelHall700 assigned gecoombs and hjabbot and unassigned gecoombs Apr 30, 2024
@hjabbot
Copy link
Collaborator Author

hjabbot commented May 23, 2024

Adding bugs / areas for improvement that I'm finding along the way here as a reminder to fix them after setting up testing:

cellbox.py:

  • deallocate_cellbox() does not remove instance of self, unclear what intended purpose is

aggregated_cellbox.py: (All fixed in PR #70)

  • load_from_json() includes 'id' as part of agg_data
  • inconsistent naming between set_boundary and get_bounds methods
  • contains_point() does not account for antimeridian

neighbour_graph.py:

  • remove_node_from_neighbours() docstring says int values passed to method, but method fails when cellbox_indx is an int. Unsure how this method is actually meant to work, I think there's an error with the casting between int and str somewhere
  • naming of methods is very confusing, e.g. update_neighbour, update_corner_neighbours, update_neighbours all exist and do different things. update_corner_neighbours appears most similar to update_neighbour, and not update_neighbours
  • get_neighbour_case(), get_neighbour_case_bounds(), get_global_mesh_neighbour_case(), initialise_map() all take self as argument but have no call to self, should be staticmethods instead
  • get_global_mesh_neighbour_case() doesn't return 0 when cellboxes aren't connected. This hasn't cropped up before because the method is only called within get_neighbour_case() after doing a check to see if they're connected
  • update_neighbours() docstring says new_neighbour_indx is an int, but references it in code as if it is a list of at least length 2. Unclear what intended input is.

cli.py

  • export_mesh_cli() does not support changing output filename
  • merge_mesh does not change config of first provided mesh, so config params do not match the output mesh

@hjabbot hjabbot mentioned this issue May 23, 2024
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants