def setUp(self): self.Aagent1 = Atomic_Agent('S', ['u'], 'cyt') self.Aagent12 = Atomic_Agent('S', ['p'], 'cyt') self.Aagent13 = Atomic_Agent('S', ['u', 'p'], 'cyt') self.Aagent2 = Atomic_Agent('T', ['u'], 'cyt') self.Aagent22 = Atomic_Agent('T', ['p'], 'cyt') self.Aagent23 = Atomic_Agent('T', ['u', 'p'], 'cyt') self.Aagent3 = Atomic_Agent('N', ['u'], 'cyt') self.Aagent32 = Atomic_Agent('N', ['p'], 'cyt') self.Aagent33 = Atomic_Agent('N', ['u', 'p'], 'cyt') self.Sagent1 = Structure_Agent('KaiC', [self.Aagent1, self.Aagent2], 'cyt') self.Sagent2 = Structure_Agent('KaiC', [self.Aagent2, self.Aagent1], 'cyt') self.Sagent3 = Structure_Agent('KaiC', [self.Aagent2, self.Aagent3], 'cyt') self.Sagent4 = Structure_Agent('KaiC', [self.Aagent13, self.Aagent23], 'cyt') self.Sagent5 = Structure_Agent('KaiC', [self.Aagent12, self.Aagent22, self.Aagent32], 'cyt') self.Sagent6 = Structure_Agent('KaiC', [self.Aagent22, self.Aagent12], 'cyt') self.Sagent7 = Structure_Agent('KaiC', [self.Aagent13, self.Aagent2], 'cyt') self.Sagent8 = Structure_Agent('KaiC', [self.Aagent1, self.Aagent23], 'cyt') self.Sagent9 = Structure_Agent('KaiC', [self.Aagent1, self.Aagent22], 'cyt') self.Sagent10 = Structure_Agent('KaiC', [], 'cyt') self.Sagent11 = Structure_Agent('KaiC', [self.Aagent1], 'cyt') self.Xagent1 = Complex_Agent([self.Sagent1, self.Sagent2], 'cyt') self.Xagent2 = Complex_Agent([self.Sagent2, self.Sagent1], 'cyt') self.Xagent3 = Complex_Agent([self.Sagent1, self.Sagent3], 'cyt') self.Xagent4 = Complex_Agent([self.Sagent3, self.Sagent1], 'cyt') self.Xagent5 = Complex_Agent([self.Sagent4, self.Sagent1], 'cyt') self.Xagent6 = Complex_Agent([self.Sagent1, self.Sagent1], 'cyt') self.Xagent7 = Complex_Agent([self.Sagent11, self.Sagent10, self.Sagent10], 'cyt') self.Xagent8 = Complex_Agent([self.Sagent1, self.Sagent4, self.Sagent9], 'cyt') self.Xagent9 = Complex_Agent([self.Sagent5, self.Sagent4, self.Sagent9], 'cyt')
class TestComplexAgent(unittest.TestCase): def setUp(self): self.Aagent1 = Atomic_Agent('S', ['u'], 'cyt') self.Aagent12 = Atomic_Agent('S', ['p'], 'cyt') self.Aagent13 = Atomic_Agent('S', ['u', 'p'], 'cyt') self.Aagent2 = Atomic_Agent('T', ['u'], 'cyt') self.Aagent22 = Atomic_Agent('T', ['p'], 'cyt') self.Aagent23 = Atomic_Agent('T', ['u', 'p'], 'cyt') self.Aagent3 = Atomic_Agent('N', ['u'], 'cyt') self.Aagent32 = Atomic_Agent('N', ['p'], 'cyt') self.Aagent33 = Atomic_Agent('N', ['u', 'p'], 'cyt') self.Sagent1 = Structure_Agent('KaiC', [self.Aagent1, self.Aagent2], 'cyt') self.Sagent2 = Structure_Agent('KaiC', [self.Aagent2, self.Aagent1], 'cyt') self.Sagent3 = Structure_Agent('KaiC', [self.Aagent2, self.Aagent3], 'cyt') self.Sagent4 = Structure_Agent('KaiC', [self.Aagent13, self.Aagent23], 'cyt') self.Sagent5 = Structure_Agent('KaiC', [self.Aagent12, self.Aagent22, self.Aagent32], 'cyt') self.Sagent6 = Structure_Agent('KaiC', [self.Aagent22, self.Aagent12], 'cyt') self.Sagent7 = Structure_Agent('KaiC', [self.Aagent13, self.Aagent2], 'cyt') self.Sagent8 = Structure_Agent('KaiC', [self.Aagent1, self.Aagent23], 'cyt') self.Sagent9 = Structure_Agent('KaiC', [self.Aagent1, self.Aagent22], 'cyt') self.Sagent10 = Structure_Agent('KaiC', [], 'cyt') self.Sagent11 = Structure_Agent('KaiC', [self.Aagent1], 'cyt') self.Xagent1 = Complex_Agent([self.Sagent1, self.Sagent2], 'cyt') self.Xagent2 = Complex_Agent([self.Sagent2, self.Sagent1], 'cyt') self.Xagent3 = Complex_Agent([self.Sagent1, self.Sagent3], 'cyt') self.Xagent4 = Complex_Agent([self.Sagent3, self.Sagent1], 'cyt') self.Xagent5 = Complex_Agent([self.Sagent4, self.Sagent1], 'cyt') self.Xagent6 = Complex_Agent([self.Sagent1, self.Sagent1], 'cyt') self.Xagent7 = Complex_Agent([self.Sagent11, self.Sagent10, self.Sagent10], 'cyt') self.Xagent8 = Complex_Agent([self.Sagent1, self.Sagent4, self.Sagent9], 'cyt') self.Xagent9 = Complex_Agent([self.Sagent5, self.Sagent4, self.Sagent9], 'cyt') def test_equal(self): self.assertTrue(self.Xagent1.__eq__(self.Xagent1)) self.assertTrue(self.Xagent1.__eq__(self.Xagent2)) self.assertFalse(self.Xagent1.__eq__(self.Xagent3)) self.assertTrue(self.Xagent3.__eq__(self.Xagent4)) self.assertTrue(self.Xagent3.__eq__(self.Xagent3)) def test_print(self): self.assertEqual(self.Xagent1.__str__(), self.Xagent2.__str__()) self.assertNotEqual(self.Xagent1.__str__(), self.Xagent3.__str__()) self.assertEqual(self.Xagent1.__str__(), "KaiC(S{u}|T{u}).KaiC(S{u}|T{u})::cyt") def test_hash(self): self.assertEqual(hash(self.Xagent1), hash(self.Xagent1)) self.assertEqual(hash(self.Xagent1), hash(self.Xagent2)) self.assertNotEqual(hash(self.Xagent1), hash(self.Xagent3)) def test_comparing(self): self.assertFalse(self.Xagent2 > self.Xagent1) self.assertTrue(self.Xagent4 < self.Xagent1) def test_setter(self): self.Xagent1.setFullComposition([self.Sagent1, self.Sagent3]) self.assertTrue(self.Xagent1.__eq__(self.Xagent3)) self.Xagent2.setFullComposition(self.Xagent4.getFullComposition()) self.assertTrue(self.Xagent2.__eq__(self.Xagent4)) def test_isCompatibleWith(self): self.assertTrue(self.Xagent6.isCompatibleWith(self.Xagent5)) self.assertTrue(self.Xagent8.isCompatibleWith(self.Xagent7)) self.assertFalse(self.Xagent9.isCompatibleWith(self.Xagent7)) def test_getAllCompositions(self): self.assertEqual(self.Xagent3.getAllCompositions(), [self.Xagent3, self.Xagent4])