Newer
Older
# coding=utf-8
from unittest import TestCase
from mock import Mock
from earthdiagnostics.modelingrealm import ModelingRealms
from earthdiagnostics.statistics.daysoverpercentile import DaysOverPercentile
class TestDaysOverPercentile(TestCase):
def setUp(self):
self.data_manager = Mock()
self.diags = Mock()
self.diags.config.experiment.get_chunk_list.return_value = (('20011101', 0, 0), ('20011101', 0, 1))
def test_generate_jobs(self):
jobs = DaysOverPercentile.generate_jobs(self.diags, ['monpercent', 'ocean', 'var', '2000', '2001', '11'])
self.assertEqual(len(jobs), 2)
self.assertEqual(jobs[0], DaysOverPercentile(self.data_manager, ModelingRealms.ocean, 'var', 2000, 2001,
2000, 11))
self.assertEqual(jobs[1], DaysOverPercentile(self.data_manager, ModelingRealms.ocean, 'var', 2000, 2001,
2001, 11))
with self.assertRaises(Exception):
DaysOverPercentile.generate_jobs(self.diags, ['monpercent', 'ocean', 'var', '2000', '2001'])
with self.assertRaises(Exception):
DaysOverPercentile.generate_jobs(self.diags, ['monpercent', 'ocean', 'var', '2000', '2001', '11', 'extra'])
def test_str(self):
diagnostic = DaysOverPercentile(self.data_manager, ModelingRealms.ocean, 'var', 2000, 2001, '20001101', 11)
self.assertEquals(str(diagnostic), 'Days over percentile Startdate: 20001101 Variable: ocean:var '
'Climatology: 2000-2001')