Skip to content

Commit 5f229aa

Browse files
committed
entity tag uses strings instead of lists.
1 parent 9b5152c commit 5f229aa

File tree

7 files changed

+24
-91
lines changed

7 files changed

+24
-91
lines changed

climada/entity/disc_rates/test/test_base.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,8 @@ def test_append_equal_same(self):
8080

8181
self.assertTrue(np.array_equal(disc_rate.years, disc_rate_add.years))
8282
self.assertTrue(np.array_equal(disc_rate.rates, disc_rate_add.rates))
83-
self.assertTrue(np.array_equal(disc_rate.tag.file_name, \
84-
[disc_rate_add.tag.file_name, disc_rate_add.tag.file_name]))
85-
self.assertEqual(disc_rate.tag.description, ['descr1', 'descr1'])
83+
self.assertTrue(np.array_equal(disc_rate.tag.file_name, disc_rate_add.tag.file_name))
84+
self.assertEqual(disc_rate.tag.description, disc_rate_add.tag.description)
8685

8786
def test_append_different_append(self):
8887
"""Append DiscRates with same and new values. The rates with repeated
@@ -106,10 +105,8 @@ def test_append_different_append(self):
106105
np.array([2000, 2001, 2002, 2003])))
107106
self.assertTrue(np.array_equal(disc_rate.rates, \
108107
np.array([0.11, 0.22, 0.3, 0.33])))
109-
self.assertTrue(np.array_equal(disc_rate.tag.file_name, \
110-
['file1.txt', 'file2.txt']))
111-
self.assertTrue(np.array_equal(disc_rate.tag.description, \
112-
['descr1', 'descr2']))
108+
self.assertTrue(np.array_equal(disc_rate.tag.file_name, 'file1.txt + file2.txt'))
109+
self.assertTrue(np.array_equal(disc_rate.tag.description, 'descr1 + descr2'))
113110

114111
class TestReadParallel(unittest.TestCase):
115112
"""Check read function with several files"""
@@ -118,8 +115,8 @@ def test_read_two_pass(self):
118115
"""Both files are readed and appended."""
119116
descriptions = ['desc1','desc2']
120117
disc_rate = DiscRates([ENT_TEST_XLS, ENT_TEST_XLS], descriptions)
121-
self.assertEqual(disc_rate.tag.file_name, [ENT_TEST_XLS, ENT_TEST_XLS])
122-
self.assertEqual(disc_rate.tag.description, descriptions)
118+
self.assertEqual(disc_rate.tag.file_name, ENT_TEST_XLS)
119+
self.assertEqual(disc_rate.tag.description, 'desc1 + desc2')
123120
self.assertEqual(disc_rate.years.size, 51)
124121

125122
# Execute Tests

climada/entity/exposures/test/test_base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,8 @@ def test_read_two_pass(self):
207207
"""Both files are read and appended."""
208208
descriptions = ['desc1', 'desc2']
209209
expo = Exposures([ENT_TEST_XLS, ENT_TEST_XLS], descriptions)
210-
self.assertEqual(expo.tag.file_name, [ENT_TEST_XLS, ENT_TEST_XLS])
211-
self.assertEqual(expo.tag.description, descriptions)
210+
self.assertEqual(expo.tag.file_name, ENT_TEST_XLS)
211+
self.assertEqual(expo.tag.description, 'desc1 + desc2')
212212
self.assertEqual(expo.id.size, 2*50)
213213

214214
def test_read_incompatible_fail(self):

climada/entity/impact_funcs/test/test_imp_fun_set.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,8 @@ def test_read_two_pass(self):
425425
"""Both files are readed and appended."""
426426
descriptions = ['desc1','desc2']
427427
imp_funcs = ImpactFuncSet([ENT_TEMPLATE_XLS, ENT_TEMPLATE_XLS], descriptions)
428-
self.assertEqual(imp_funcs.tag.file_name, [ENT_TEMPLATE_XLS, ENT_TEMPLATE_XLS])
429-
self.assertEqual(imp_funcs.tag.description, descriptions)
428+
self.assertEqual(imp_funcs.tag.file_name, ENT_TEMPLATE_XLS)
429+
self.assertEqual(imp_funcs.tag.description, 'desc1 + desc2')
430430
self.assertEqual(imp_funcs.num_funcs(), 11)
431431

432432
# Execute Tests

climada/entity/measures/test/test_base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,8 +287,8 @@ def test_read_two_pass(self):
287287
"""Both files are readed and appended."""
288288
descriptions = ['desc1','desc2']
289289
meas = MeasureSet([ENT_TEMPLATE_XLS, ENT_TEMPLATE_XLS], descriptions)
290-
self.assertEqual(meas.tag.file_name, [ENT_TEMPLATE_XLS, ENT_TEMPLATE_XLS])
291-
self.assertEqual(meas.tag.description, descriptions)
290+
self.assertEqual(meas.tag.file_name, ENT_TEMPLATE_XLS)
291+
self.assertEqual(meas.tag.description, 'desc1 + desc2')
292292
self.assertEqual(meas.num_measures(), 7)
293293

294294
# Execute Tests

climada/entity/tag.py

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44

55
__all__ = ['Tag']
66

7-
import os
8-
9-
class Tag(object):
7+
class Tag():
108
"""Source data tag for Exposures, DiscRates, ImpactFuncSet, MeasureSet.
119
1210
Attributes:
@@ -33,39 +31,13 @@ def append(self, tag):
3331
elif tag.file_name == '':
3432
return
3533
else:
36-
if not isinstance(self.file_name, list):
37-
self.file_name = [self.file_name]
38-
if not isinstance(tag.file_name, list):
39-
to_add = [tag.file_name]
40-
else:
41-
to_add = tag.file_name
42-
self.file_name.extend(to_add)
43-
44-
if not isinstance(self.description, list):
45-
self.description = [self.description]
46-
if not isinstance(tag.description, list):
47-
tag.description = [tag.description]
48-
self.description.extend(tag.description)
49-
50-
def join_file_names(self):
51-
""" Get a string with the joined file names. """
52-
if not isinstance(self.file_name, list):
53-
join_file = os.path.splitext(os.path.basename(self.file_name))[0]
54-
else:
55-
join_file = ' + '.join([os.path.splitext(
56-
os.path.basename(file))[0] for file in self.file_name])
57-
return join_file
58-
59-
def join_descriptions(self):
60-
""" Get a string with the joined descriptions. """
61-
if not isinstance(self.description, list):
62-
join_desc = self.description
63-
else:
64-
join_desc = ' + '.join([desc for desc in self.description])
65-
return join_desc
34+
if tag.file_name not in self.file_name:
35+
self.file_name += ' + ' + tag.file_name
36+
if tag.description not in self.description:
37+
self.description += ' + ' + tag.description
6638

6739
def __str__(self):
68-
return ' File: ' + self.join_file_names() + '\n Description: ' + \
69-
self.join_descriptions()
40+
return ' File: ' + self.file_name + '\n Description: ' + \
41+
self.description
7042

7143
__repr__ = __str__

climada/entity/test/test_entity.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ def test_read_parallel(self):
6767

6868
ent = Entity([ENT_TEST_XLS, ENT_TEST_XLS], ['demo', 'demo'])
6969
self.assertEqual(ent.exposures.id.size, 100)
70-
self.assertEqual(ent.exposures.tag.file_name, \
71-
[ENT_TEST_XLS, ENT_TEST_XLS])
70+
self.assertEqual(ent.exposures.tag.file_name, ENT_TEST_XLS)
7271

7372
class TestCheck(unittest.TestCase):
7473
"""Test entity checker."""

climada/entity/test/test_tag.py

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@ def test_append_different_increase(self):
1919

2020
tag1.append(tag2)
2121

22-
self.assertEqual(['file_name1.mat', 'file_name2.mat'], tag1.file_name)
23-
self.assertEqual(['dummy file 1', 'dummy file 2'], tag1.description)
22+
self.assertEqual('file_name1.mat + file_name2.mat', tag1.file_name)
23+
self.assertEqual('dummy file 1 + dummy file 2', tag1.description)
2424

2525
def test_append_equal_same(self):
2626
"""Appends an other tag correctly."""
2727
tag1 = Tag('file_name1.mat', 'dummy file 1')
2828
tag2 = Tag('file_name1.mat', 'dummy file 1')
2929

3030
tag1.append(tag2)
31-
self.assertEqual(['file_name1.mat', 'file_name1.mat'], tag1.file_name)
32-
self.assertEqual(['dummy file 1', 'dummy file 1'], tag1.description)
31+
self.assertEqual('file_name1.mat', tag1.file_name)
32+
self.assertEqual('dummy file 1', tag1.description)
3333

3434
def test_append_empty(self):
3535
"""Appends an other tag correctly."""
@@ -47,41 +47,6 @@ def test_append_empty(self):
4747
self.assertEqual('file_name1.mat', tag1.file_name)
4848
self.assertEqual('dummy file 1', tag1.description)
4949

50-
class TestJoin(unittest.TestCase):
51-
"""Test joining functions and string formation Tag class."""
52-
53-
def test_one_str_pass(self):
54-
""" Test __str__ method with one file"""
55-
tag = Tag('file_name1.mat', 'dummy file 1')
56-
self.assertEqual(str(tag),
57-
' File: file_name1\n Description: dummy file 1')
58-
59-
def test_teo_str_pass(self):
60-
""" Test __str__ method with one file"""
61-
tag1 = Tag('file1.mat', 'desc1')
62-
tag2 = Tag('file2.xls', 'desc2')
63-
tag1.append(tag2)
64-
self.assertEqual(str(tag1),
65-
' File: file1 + file2\n Description: desc1 + desc2')
66-
67-
def test_join_names_pass(self):
68-
""" Test join_file_names function."""
69-
tag1 = Tag('file1', 'desc1')
70-
tag2 = Tag('file2', 'desc2')
71-
tag1.append(tag2)
72-
join_name = tag1.join_file_names()
73-
self.assertEqual('file1 + file2', join_name)
74-
75-
def test_join_descr_pass(self):
76-
""" Test join_descriptions function."""
77-
tag1 = Tag('file1', 'desc1')
78-
tag2 = Tag('file2', 'desc2')
79-
tag1.append(tag2)
80-
join_desc = tag1.join_descriptions()
81-
self.assertEqual('desc1 + desc2', join_desc)
82-
83-
8450
# Execute Tests
8551
TESTS = unittest.TestLoader().loadTestsFromTestCase(TestAppend)
86-
TESTS.addTests(unittest.TestLoader().loadTestsFromTestCase(TestJoin))
8752
unittest.TextTestRunner(verbosity=2).run(TESTS)

0 commit comments

Comments
 (0)