Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# coding=utf-8
from unittest import TestCase
from earthdiagnostics.diagnostic import DiagnosticVariableOption
from earthdiagnostics.box import Box
from earthdiagnostics.frequency import Frequencies
from earthdiagnostics.general.yearlymean import YearlyMean
from mock import Mock, patch
from earthdiagnostics.modelingrealm import ModelingRealms
class TestYearlyMean(TestCase):
def setUp(self):
self.data_manager = Mock()
self.diags = Mock()
self.diags.config.experiment.get_chunk_list.return_value = (('20010101', 0, 0), ('20010101', 0, 1))
self.diags.config.frequency = Frequencies.monthly
self.box = Box()
self.box.min_depth = 0
self.box.max_depth = 100
self.mixed = YearlyMean(self.data_manager, '20000101', 1, 1, ModelingRealms.ocean, 'var', 'freq', '')
def fake_parse(self, value):
return value
@patch.object(DiagnosticVariableOption, 'parse', fake_parse)
def test_generate_jobs(self):
jobs = YearlyMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var'])
self.assertEqual(len(jobs), 2)
self.assertEqual(jobs[0], YearlyMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var',
Frequencies.monthly, ''))
self.assertEqual(jobs[1], YearlyMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var',
Frequencies.monthly, ''))
jobs = YearlyMean.generate_jobs(self.diags, ['diagnostic', 'atmos', 'var', 'day'])
self.assertEqual(len(jobs), 2)
self.assertEqual(jobs[0], YearlyMean(self.data_manager, '20010101', 0, 0, ModelingRealms.atmos, 'var',
Frequencies.daily, ''))
self.assertEqual(jobs[1], YearlyMean(self.data_manager, '20010101', 0, 1, ModelingRealms.atmos, 'var',
Frequencies.daily, ''))
jobs = YearlyMean.generate_jobs(self.diags, ['diagnostic', 'seaice', 'var', 'mon', 'grid'])
self.assertEqual(len(jobs), 2)
self.assertEqual(jobs[0], YearlyMean(self.data_manager, '20010101', 0, 0, ModelingRealms.seaIce, 'var',
Frequencies.monthly, 'grid'))
self.assertEqual(jobs[1], YearlyMean(self.data_manager, '20010101', 0, 1, ModelingRealms.seaIce, 'var',
Frequencies.monthly, 'grid'))
with self.assertRaises(Exception):
YearlyMean.generate_jobs(self.diags, ['diagnostic'])
with self.assertRaises(Exception):
YearlyMean.generate_jobs(self.diags, ['diagnostic', '0', '0', '0', '0', '0', '0', '0'])
def test_str(self):
self.assertEquals(str(self.mixed), 'Calculate yearly mean Startdate: 20000101 Member: 1 Chunk: 1 '
'Variable: ocean:var Original frequency: freq Grid: ')