-
Notifications
You must be signed in to change notification settings - Fork 4
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
Basic test #33
Basic test #33
Changes from 19 commits
16159dc
a41afab
dbb7f0d
34a44a7
56f44b5
fd6f84e
17948e1
0a6ab7a
c2bb72f
528d1b3
02ee54d
a694733
635110e
72a83cd
ad173e2
89f88a6
49c7d50
e566bdb
9ad6008
c4d4555
87b040f
3e42563
01ffb83
1e1267f
3b65eca
36ead1b
5186d7e
8bb7ee2
1cf2082
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,3 +31,15 @@ jobs: | |
run: black --diff --check ./$PACKAGE | ||
- name: isort | ||
run: isort --check-only --diff ./$PACKAGE | ||
|
||
tests: | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
python-version: 3.12 | ||
- name: install | ||
run: pip install ".[dev]" | ||
- name: run_tests | ||
run: pytest --cov=virtual_ship tests | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -172,3 +172,5 @@ cython_debug/ | |
|
||
# Auto generated by setuptools scm | ||
virtual_ship/_version_setup.py | ||
|
||
.vscode/ |
surgura marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#!/bin/sh | ||
|
||
# Runs the tests and creates a code coverage report. | ||
|
||
pytest --cov=virtual_ship --cov-report=html tests | ||
surgura marked this conversation as resolved.
Show resolved
Hide resolved
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is this necessary? We don't have this in parcels. What does this file do? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is ran for every test. It chanced the working directory of the test to the directory of the test itself. The reason I did this is because the config json is next to the test, and since the working directory was at the project root I had to type the path to the file. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
import pytest | ||
|
||
|
||
# Set the working directory for each test to the directory of that test. | ||
@pytest.fixture(autouse=True) | ||
def change_test_dir(request, monkeypatch): | ||
monkeypatch.chdir(request.fspath.dirname) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
"""Test the simulation of argos.""" | ||
|
||
from virtual_ship.instruments.argo import simulate_argos, Argo | ||
from virtual_ship.instruments.location import Location | ||
from parcels import FieldSet | ||
import numpy as np | ||
|
||
|
||
def test_simulate_argos() -> None: | ||
DRIFT_DEPTH = -1000 | ||
MAX_DEPTH = -2000 | ||
VERTICLE_SPEED = -0.10 | ||
CYCLE_DAYS = 10 | ||
DRIFT_DAYS = 9 | ||
|
||
fieldset = FieldSet.from_data( | ||
{"U": 0, "V": 0, "T": 0, "S": 0}, | ||
{ | ||
"lon": 0, | ||
"lat": 0, | ||
"time": [np.datetime64("1950-01-01") + np.timedelta64(632160, "h")], | ||
}, | ||
) | ||
|
||
min_depth = -fieldset.U.depth[0] | ||
|
||
argos = [ | ||
Argo( | ||
location=Location(latitude=0, longitude=0), | ||
deployment_time=0, | ||
min_depth=min_depth, | ||
max_depth=MAX_DEPTH, | ||
drift_depth=DRIFT_DEPTH, | ||
vertical_speed=VERTICLE_SPEED, | ||
cycle_days=CYCLE_DAYS, | ||
drift_days=DRIFT_DAYS, | ||
) | ||
] | ||
|
||
simulate_argos(argos=argos, fieldset=fieldset, out_file_name="test") |
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not for this PR, but at some point we should reconsider whether we want to keep using |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
{ | ||
"region_of_interest": { | ||
"North": 64, | ||
"East": -23, | ||
"South": 59, | ||
"West": -43 | ||
}, | ||
"requested_ship_time": { | ||
"start": "2022-01-01T00:00:00", | ||
"end": "2022-01-2T00:00:00" | ||
}, | ||
"route_coordinates": [ | ||
[-23.071289, 63.743631], [-23.081289, 63.743631], [-23.091289, 63.743631] | ||
], | ||
"underway_data": true, | ||
"ADCP_data": false, | ||
"ADCP_settings": { | ||
"max_depth": -1000, | ||
"bin_size_m": 24 | ||
}, | ||
"CTD_locations": [ | ||
[-23.071289, 63.743631] | ||
], | ||
"CTD_settings": { | ||
"max_depth": "max" | ||
}, | ||
"drifter_deploylocations": [ | ||
|
||
], | ||
"argo_deploylocations": [ | ||
[-23.081289, 63.743631] | ||
], | ||
"argo_characteristics": { | ||
"driftdepth": -1000, | ||
"maxdepth": -2000, | ||
"vertical_speed": -0.10, | ||
"cycle_days" : 10, | ||
"drift_days": 9 | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
"""Performs a complete cruise with virtual ship.""" | ||
|
||
from virtual_ship.virtual_ship_configuration import VirtualShipConfiguration | ||
from virtual_ship.sailship import sailship | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In plasticparcels, we've started to move to a API that is more like numpy etc, where we use an abbreviation ( import virtualship as vship
config = vship.Configuration(...)
vship.sailship(config) Should we start doing that here too? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fine by me. Regarding the API(what is exported where in which modules), I will look at that after I've finished the first cleanup round. |
||
from parcels import FieldSet | ||
import numpy as np | ||
|
||
|
||
def test_sailship() -> None: | ||
ctd_fieldset = FieldSet.from_data( | ||
{"U": 0, "V": 0, "S": 0, "T": 0, "bathymetry": 0}, | ||
{"lon": 0, "lat": 0}, | ||
) | ||
ctd_fieldset.add_constant("maxtime", ctd_fieldset.U.grid.time_full[-1]) | ||
ctd_fieldset.add_constant("mindepth", -ctd_fieldset.U.depth[0]) | ||
ctd_fieldset.add_constant("max_depth", -ctd_fieldset.U.depth[-1]) | ||
|
||
drifter_fieldset = FieldSet.from_data( | ||
{ | ||
"U": 0, | ||
"V": 0, | ||
}, | ||
{"lon": 0, "lat": 0}, | ||
) | ||
|
||
argo_fieldset = FieldSet.from_data( | ||
{"U": 0, "V": 0, "T": 0, "S": 0}, | ||
{ | ||
"lon": 0, | ||
"lat": 0, | ||
"time": [np.datetime64("1950-01-01") + np.timedelta64(632160, "h")], | ||
}, | ||
) | ||
|
||
config = VirtualShipConfiguration( | ||
"sailship_config.json", | ||
ctd_fieldset=ctd_fieldset, | ||
drifter_fieldset=drifter_fieldset, | ||
argo_fieldset=argo_fieldset, | ||
) | ||
|
||
sailship(config) |
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add extra verbose/debug output to pytest