Skip to content

Commit 519c9af

Browse files
committed
feat(test): adds test for ImpactFuncSet
1 parent 222644d commit 519c9af

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

climada/entity/impact_funcs/test/test_imp_fun_set.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,55 @@ def test_remove_add_pass(self):
288288
self.assertEqual([1], imp_fun.get_ids("TC"))
289289

290290

291+
class TestEquality(unittest.TestCase):
292+
"""Test equality method for ImpactFuncSet"""
293+
294+
def setUp(self):
295+
intensity = np.array([0, 20])
296+
paa = np.array([0, 1])
297+
mdd = np.array([0, 0.5])
298+
299+
fun_1 = ImpactFunc("TC", 3, intensity, mdd, paa)
300+
fun_2 = ImpactFunc("TC", 3, intensity, mdd, paa)
301+
fun_3 = ImpactFunc("TC", 4, intensity + 1, mdd, paa)
302+
303+
self.impact_set1 = ImpactFuncSet([fun_1])
304+
self.impact_set2 = ImpactFuncSet([fun_2])
305+
self.impact_set3 = ImpactFuncSet([fun_3])
306+
self.impact_set4 = ImpactFuncSet([fun_1, fun_3])
307+
308+
def test_reflexivity(self):
309+
self.assertEqual(self.impact_set1, self.impact_set1)
310+
311+
def test_symmetry(self):
312+
self.assertEqual(self.impact_set1, self.impact_set2)
313+
self.assertEqual(self.impact_set2, self.impact_set1)
314+
315+
def test_transitivity(self):
316+
impact_set5 = ImpactFuncSet([self.impact_set1._data["TC"][3]])
317+
self.assertEqual(self.impact_set1, self.impact_set2)
318+
self.assertEqual(self.impact_set2, impact_set5)
319+
self.assertEqual(self.impact_set1, impact_set5)
320+
321+
def test_consistency(self):
322+
self.assertEqual(self.impact_set1, self.impact_set2)
323+
self.assertEqual(self.impact_set1, self.impact_set2)
324+
325+
def test_comparison_with_none(self):
326+
self.assertNotEqual(self.impact_set1, None)
327+
328+
def test_different_types(self):
329+
self.assertNotEqual(self.impact_set1, "Not an ImpactFuncSet")
330+
331+
def test_field_comparison(self):
332+
self.assertNotEqual(self.impact_set1, self.impact_set3)
333+
self.assertNotEqual(self.impact_set1, self.impact_set4)
334+
335+
def test_inequality(self):
336+
self.assertNotEqual(self.impact_set1, self.impact_set3)
337+
self.assertTrue(self.impact_set1 != self.impact_set3)
338+
339+
291340
class TestChecker(unittest.TestCase):
292341
"""Test loading funcions from the ImpactFuncSet class"""
293342

@@ -592,6 +641,7 @@ def test_write_read_pass(self):
592641
# Execute Tests
593642
if __name__ == "__main__":
594643
TESTS = unittest.TestLoader().loadTestsFromTestCase(TestContainer)
644+
TESTS.addTests(unittest.TestLoader().loadTestsFromTestCase(TestEquality))
595645
TESTS.addTests(unittest.TestLoader().loadTestsFromTestCase(TestChecker))
596646
TESTS.addTests(unittest.TestLoader().loadTestsFromTestCase(TestExtend))
597647
TESTS.addTests(unittest.TestLoader().loadTestsFromTestCase(TestReaderExcel))

0 commit comments

Comments
 (0)