-
Tor-Einar Skog authoredTor-Einar Skog authored
test_reference_model.py 3.81 KiB
"""
Example translation system
Copyright (C) 2023 NIBIO <http://www.nibio.no/>.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
import unittest
import json
from src.vips_reference_model.reference_model import *
from vipscore_common.entities import *
def get_model_configuration():
with open ("tests/weather_data_2015_NO_aas_TMD.json") as f:
weather_observations = json.load(f)
return ModelConfiguration(
model_id=ReferenceModel.MODEL_ID,
config_parameters={
"sowingDate": "2022-03-01",
"timeZone" : "Europe/Oslo",
"observations": weather_observations
}
)
class TestReferenceModel(unittest.TestCase):
def test_set_configuration(self):
"""
Passing a configuration object does not fail
"""
#print(get_model_configuration())
instance = ReferenceModel()
mc=get_model_configuration()
#print(mc.json())
instance.set_configuration(mc)
def test_get_result(self):
"""
We get a series of results from the calculation,
and the TMDD is as expected
"""
instance = ReferenceModel()
instance.set_configuration(get_model_configuration())
result_list = instance.get_result()
self.assertIsNotNone(result_list)
last_result = result_list[len(result_list)-1]
self.assertIsNotNone(result_list[0].valid_time_start)
self.assertEqual(555.8507083333333, last_result.get_value("WEATHER","TMDD"))
def test_get_model_id(self):
"""
The model returns the correct ID
"""
instance = ReferenceModel()
self.assertEqual(instance.model_id, ReferenceModel.MODEL_ID)
def test_get_license(self):
"""
The model returns its license
"""
instance = ReferenceModel()
self.assertIsNotNone(instance.license)
def test_get_copyright(self):
"""
The model returns its copyright notice
"""
instance = ReferenceModel()
self.assertEqual(instance.copyright, ReferenceModel.COPYRIGHT)
def test_get_sample_config(self):
"""
The model returns its sample configuration
"""
instance = ReferenceModel()
self.assertIsNotNone(instance.sample_config)
def test_get_model_name(self):
"""
The model returns its name in the default language
"""
instance = ReferenceModel()
self.assertEqual(instance.get_model_name(), "Reference Model")
# Norwegian
self.assertEqual(instance.get_model_name("nb"), "Referansemodell")
def test_get_model_description(self):
"""
The model returns a description
"""
instance = ReferenceModel()
self.assertIsNotNone(instance.get_model_description())
def test_get_warning_status_interpretation(self):
"""
The model returns a warning status interpretation
"""
instance = ReferenceModel()
self.assertIsNotNone(instance.get_warning_status_interpretation())
def test_get_model_usage(self):
"""
The model returns a description of usage
"""
if __name__ == '__main__':
unittest.main()