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

simplify adapter, write tests

parent 17e235fb
Branches lai-adapter
No related tags found
No related merge requests found
...@@ -9,7 +9,6 @@ class YearlyToMonthly(AAdapter): ...@@ -9,7 +9,6 @@ class YearlyToMonthly(AAdapter):
def __init__(self, lai_curve): def __init__(self, lai_curve):
super().__init__() super().__init__()
self.data = None self.data = None
self.month = 0
if len(lai_curve) != 12: if len(lai_curve) != 12:
raise ValueError("LAI curve must be an array of 12 values") raise ValueError("LAI curve must be an array of 12 values")
self.lai_curve = lai_curve self.lai_curve = lai_curve
...@@ -19,7 +18,6 @@ class YearlyToMonthly(AAdapter): ...@@ -19,7 +18,6 @@ class YearlyToMonthly(AAdapter):
raise ValueError("Time must be of type datetime") raise ValueError("Time must be of type datetime")
self.data = self.pull_data(time) self.data = self.pull_data(time)
self.month = time.month
self.notify_targets(time) self.notify_targets(time)
...@@ -27,9 +25,6 @@ class YearlyToMonthly(AAdapter): ...@@ -27,9 +25,6 @@ class YearlyToMonthly(AAdapter):
if not isinstance(time, datetime): if not isinstance(time, datetime):
raise ValueError("Time must be of type datetime") raise ValueError("Time must be of type datetime")
new_month = time.month lai = [self.data * self.lai_curve[m] for m in range(0, len(self.lai_curve))]
lai = []
for m in range(self.month - 1, new_month):
lai.append(self.data * self.lai_curve[m])
return lai return lai
import unittest import unittest
from datetime import datetime, timedelta from datetime import datetime, timedelta
from finam.modules.generators import CallbackGenerator
from finam.data.grid import Grid, GridSpec
from finam_mhm_module import YearlyToMonthly from finam_mhm_module import YearlyToMonthly
class TestLaiAdapter(unittest.TestCase): class TestLaiAdapter(unittest.TestCase):
def test_adapter(self): def test_adapter(self):
pass grid = Grid(GridSpec(3, 2))
grid.fill(1.0)
for c in range(3):
grid.set(c, 0, 2.0)
source = CallbackGenerator(
callbacks={"LAI": lambda t: grid},
start=datetime(2000, 1, 1),
step=timedelta(365.0),
)
lai_curve = [0.0, 0.0, 0.2, 0.5, 0.8, 1.0, 1.0, 1.0, 0.8, 0.5, 0.2, 0.0]
adapter = YearlyToMonthly(lai_curve)
source.initialize()
source.outputs["LAI"] >> adapter
source.connect()
source.validate()
lai_months = adapter.get_data(datetime(2000, 1, 1, 0))
self.assertEqual(len(lai_months), 12)
for m in range(len(lai_months)):
self.assertTrue(isinstance(lai_months[m], Grid))
self.assertEqual(lai_months[m], grid * lai_curve[m])
grid.fill(2.0)
source.update()
lai_months_2 = adapter.get_data(datetime(2001, 1, 1, 0))
self.assertEqual(len(lai_months_2), 12)
for m in range(len(lai_months_2)):
self.assertTrue(isinstance(lai_months_2[m], Grid))
self.assertEqual(lai_months_2[m], grid * lai_curve[m])
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