# Copyright 2024 (c) Anna Schumaker. """Tests our common Thread class.""" import emmental.thread import unittest class TestData(unittest.TestCase): """Tests our thread Data class.""" def test_init_kwargs(self): """Tests initializing the data class with keyword args.""" data = emmental.thread.Data(a=1, b=2) self.assertEqual(data.a, 1) self.assertEqual(data.b, 2) self.assertEqual(repr(data), "Data(a=1, b=2)") def test_init_values_dict(self): """Test initializing the data class with a dictionary of values.""" data = emmental.thread.Data({"a": 1, "b": 2}) self.assertEqual(data.a, 1) self.assertEqual(data.b, 2) self.assertEqual(repr(data), "Data(a=1, b=2)") def test_init_both(self): """Test initializing the data class with both.""" data = emmental.thread.Data({"a": 1, "b": 2}, b=3, c='4') self.assertEqual(data.a, 1) self.assertEqual(data.b, 3) self.assertEqual(data.c, '4') self.assertEqual(repr(data), "Data(a=1, b=3, c='4')") def test_compare(self): """Test comparing two data classes.""" data1 = emmental.thread.Data({"a": 1, "b": 2}) data2 = emmental.thread.Data({"c": 3, "d": 4}) self.assertTrue(data1 == data1) self.assertTrue(data1 == {"a": 1, "b": 2}) self.assertFalse(data1 == data2) self.assertFalse(data1 == {"c": 2, "d": 4}) self.assertFalse(data1 == 3)