Skip to content
Snippets Groups Projects
Commit b70e9bd2 authored by Martin Lange's avatar Martin Lange
Browse files

set up basic benchmarks

parent ad4848e4
No related branches found
No related tags found
1 merge request!207Set up benchmarks
Pipeline #131883 passed with stages
in 3 minutes and 33 seconds
This commit is part of merge request !207. Comments created here will be created in the context of that merge request.
...@@ -31,6 +31,12 @@ test: ...@@ -31,6 +31,12 @@ test:
paths: paths:
- cov - cov
benchmark:
stage: test
script:
- pip3 install --editable .[test]
- python -m pytest -v benchmarks/
doctest: doctest:
stage: test stage: test
script: script:
......
import datetime as dt
import unittest
import pytest
import finam as fm
from finam.data import (
assign_time,
check,
full,
get_time,
get_units,
has_time,
strip_data,
strip_time,
to_units,
to_xarray,
)
class TestCheckXarray(unittest.TestCase):
@pytest.fixture(autouse=True)
def setupBenchmark(self, benchmark):
self.benchmark = benchmark
def test_check_xarray_01_2x1(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2, 1)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(check, xdata=xdata, name="test", info=info, time=time)
def test_check_xarray_02_128x64(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((128, 64)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(check, xdata=xdata, name="test", info=info, time=time)
class TestToXarray(unittest.TestCase):
@pytest.fixture(autouse=True)
def setupBenchmark(self, benchmark):
self.benchmark = benchmark
def test_to_xarray_01_2x1(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2, 1)), units="m")
xdata = full(0.0, "test", info, time)
data = strip_data(xdata)
_result = self.benchmark(
to_xarray, data=data, name="test", info=info, time=time
)
def test_to_xarray_02_128x64(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((128, 64)), units="m")
xdata = full(0.0, "test", info, time)
data = strip_data(xdata)
_result = self.benchmark(
to_xarray, data=data, name="test", info=info, time=time
)
def test_to_xarray_03_2048x1024(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2048, 1024)), units="m")
xdata = full(0.0, "test", info, time)
data = strip_data(xdata)
_result = self.benchmark(
to_xarray, data=data, name="test", info=info, time=time
)
class TestTimeTools(unittest.TestCase):
@pytest.fixture(autouse=True)
def setupBenchmark(self, benchmark):
self.benchmark = benchmark
def test_strip_time(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2, 1)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(strip_time, xdata=xdata)
def test_assign_time_update(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2, 1)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(assign_time, xdata=xdata, time=dt.datetime(2000, 1, 2))
def test_assign_time_add(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2, 1)), units="m")
xdata = full(0.0, "test", info, time)
xdata = strip_time(xdata)
_result = self.benchmark(assign_time, xdata=xdata, time=dt.datetime(2000, 1, 2))
def test_get_time(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2, 1)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(get_time, xdata=xdata)
def test_has_time(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2, 1)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(has_time, xdata=xdata)
class TestUnitsTools(unittest.TestCase):
@pytest.fixture(autouse=True)
def setupBenchmark(self, benchmark):
self.benchmark = benchmark
def test_get_units(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2, 1)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(get_units, xdata=xdata)
def test_to_units_2x1(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2, 1)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(to_units, xdata=xdata, units="in")
def test_to_units_128x64(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((128, 64)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(to_units, xdata=xdata, units="in")
def test_to_units_2048x1024(self):
time = dt.datetime(2000, 1, 1)
info = fm.Info(time=time, grid=fm.UniformGrid((2048, 1024)), units="m")
xdata = full(0.0, "test", info, time)
_result = self.benchmark(to_units, xdata=xdata, units="in")
...@@ -65,7 +65,10 @@ doc = [ ...@@ -65,7 +65,10 @@ doc = [
"docutils>=0.18", # mdinclude with myst "docutils>=0.18", # mdinclude with myst
"matplotlib>=3", "matplotlib>=3",
] ]
test = ["pytest-cov>=3"] test = [
"pytest-cov>=3",
"pytest-benchmark>=4.0",
]
[tool.setuptools] [tool.setuptools]
license-files = ["LICENSE"] license-files = ["LICENSE"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment