class Item4ReactionTests(unittest.TestCase):
    def setUp(self):
        self.reaction = Reaction('ATPhyrdolysis', (Compound('atp'), Compound('h2o')), (Compound('adp'), Compound('pi')), (1,1,1,1))
    
    # def test__init__(self):
    #     """Tests if wrong initializations are caught by the right Exceptions"""
    #     self.assertRaises(TypeError, self.reaction.__init__, ('asdf', (Compound('atp'), Compound('h2o')), (Compound('adp'), Compound('pi')), (1,1,1,1)))
    #     self.assertRaises(TypeError, self.reaction.__init__, ([1,2], (Compound('atp'), Compound('h2o')), (Compound('adp'), Compound('pi')), (1,1,1,1)))
    
    def test__str__(self):
        """Tests if the __str__ method works correctly"""
        self.assertEqual(self.reaction.__str__(), '1 atp + 1 h2o -> 1 adp + 1 pi')

    def test_contains_string_input(self):
        self.assertTrue('atp' in self.reaction)
        
    def test_contains_string_input(self):
        self.assertTrue(Compound('atp') in self.reaction)
 def setUp(self):
     self.reaction = Reaction('ATPhyrdolysis', (Compound('atp'), Compound('h2o')), (Compound('adp'), Compound('pi')), (1,1,1,1))