def testApplyActionDecrementBond(self): """ Test the Bond.applyAction() method for a CHANGE_BOND action. """ action = ['CHANGE_BOND', '*1', -1, '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) except ActionError: self.assertTrue('S' == order0 or 'B' == order0)
def testApplyActionLoseRadical(self): """ Test the Bond.applyAction() method for a LOSE_RADICAL action. """ action = ['LOSE_RADICAL', '*1', 1] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail('Bond.applyAction() unexpectedly processed a LOSE_RADICAL action.') except ActionError: pass
def testApplyActionFormBond(self): """ Test the Bond.applyAction() method for a FORM_BOND action. """ action = ['FORM_BOND', '*1', 'S', '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail('Bond.applyAction() unexpectedly processed a FORM_BOND action.') except ActionError: pass
def testApplyActionLoseRadical(self): """ Test the Bond.applyAction() method for a LOSE_RADICAL action. """ action = ['LOSE_RADICAL', '*1', 1] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail( 'Bond.applyAction() unexpectedly processed a LOSE_RADICAL action.' ) except ActionError: pass
def testApplyActionFormBond(self): """ Test the Bond.applyAction() method for a FORM_BOND action. """ action = ['FORM_BOND', '*1', 'S', '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail( 'Bond.applyAction() unexpectedly processed a FORM_BOND action.' ) except ActionError: pass
class TestBond(unittest.TestCase): """ Contains unit tests of the Bond class. """ def setUp(self): """ A method called before each unit test in this class. """ self.bond = Bond(atom1=None, atom2=None, order='D') self.orderList = ['S','D','T','B'] def testIsSingle(self): """ Test the Bond.isSingle() method. """ for order in self.orderList: bond = Bond(None, None, order=order) if order == 'S': self.assertTrue(bond.isSingle()) else: self.assertFalse(bond.isSingle()) def testIsDouble(self): """ Test the Bond.isDouble() method. """ for order in self.orderList: bond = Bond(None, None, order=order) if order == 'D': self.assertTrue(bond.isDouble()) else: self.assertFalse(bond.isDouble()) def testIsTriple(self): """ Test the Bond.isTriple() method. """ for order in self.orderList: bond = Bond(None, None, order=order) if order == 'T': self.assertTrue(bond.isTriple()) else: self.assertFalse(bond.isTriple()) def testIsBenzene(self): """ Test the Bond.isBenzene() method. """ for order in self.orderList: bond = Bond(None, None, order=order) if order == 'B': self.assertTrue(bond.isBenzene()) else: self.assertFalse(bond.isBenzene()) def testIncrementOrder(self): """ Test the Bond.incrementOrder() method. """ for order in self.orderList: bond = Bond(None, None, order=order) try: bond.incrementOrder() if order == 'S': self.assertTrue(bond.isDouble()) elif order == 'D': self.assertTrue(bond.isTriple()) except ActionError: self.assertTrue(order in ['T','B']) def testDecrementOrder(self): """ Test the Bond.decrementOrder() method. """ for order in self.orderList: bond = Bond(None, None, order=order) try: bond.decrementOrder() if order == 'D': self.assertTrue(bond.isSingle()) elif order == 'T': self.assertTrue(bond.isDouble()) except ActionError: self.assertTrue(order in ['S','B']) def testApplyActionBreakBond(self): """ Test the Bond.applyAction() method for a BREAK_BOND action. """ action = ['BREAK_BOND', '*1', 'S', '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail('Bond.applyAction() unexpectedly processed a BREAK_BOND action.') except ActionError: pass def testApplyActionFormBond(self): """ Test the Bond.applyAction() method for a FORM_BOND action. """ action = ['FORM_BOND', '*1', 'S', '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail('Bond.applyAction() unexpectedly processed a FORM_BOND action.') except ActionError: pass def testApplyActionIncrementBond(self): """ Test the Bond.applyAction() method for a CHANGE_BOND action. """ action = ['CHANGE_BOND', '*1', 1, '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) except ActionError: self.assertTrue('T' == order0 or 'B' == order0) def testApplyActionDecrementBond(self): """ Test the Bond.applyAction() method for a CHANGE_BOND action. """ action = ['CHANGE_BOND', '*1', -1, '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) except ActionError: self.assertTrue('S' == order0 or 'B' == order0) def testApplyActionGainRadical(self): """ Test the Bond.applyAction() method for a GAIN_RADICAL action. """ action = ['GAIN_RADICAL', '*1', 1] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail('Bond.applyAction() unexpectedly processed a GAIN_RADICAL action.') except ActionError: pass def testApplyActionLoseRadical(self): """ Test the Bond.applyAction() method for a LOSE_RADICAL action. """ action = ['LOSE_RADICAL', '*1', 1] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail('Bond.applyAction() unexpectedly processed a LOSE_RADICAL action.') except ActionError: pass def testEquivalent(self): """ Test the GroupBond.equivalent() method. """ for order1 in self.orderList: for order2 in self.orderList: bond1 = Bond(None, None, order=order1) bond2 = Bond(None, None, order=order2) if order1 == order2: self.assertTrue(bond1.equivalent(bond2)) self.assertTrue(bond2.equivalent(bond1)) else: self.assertFalse(bond1.equivalent(bond2)) self.assertFalse(bond2.equivalent(bond1)) def testIsSpecificCaseOf(self): """ Test the Bond.isSpecificCaseOf() method. """ for order1 in self.orderList: for order2 in self.orderList: bond1 = Bond(None, None, order=order1) bond2 = Bond(None, None, order=order2) if order1 == order2: self.assertTrue(bond1.isSpecificCaseOf(bond2)) else: self.assertFalse(bond1.isSpecificCaseOf(bond2)) def testCopy(self): """ Test the Bond.copy() method. """ bond = self.bond.copy() self.assertEqual(self.bond.order, bond.order) def testPickle(self): """ Test that a Bond object can be successfully pickled and unpickled with no loss of information. """ import cPickle bond = cPickle.loads(cPickle.dumps(self.bond)) self.assertEqual(self.bond.order, bond.order)
class TestBond(unittest.TestCase): """ Contains unit tests of the Bond class. """ def setUp(self): """ A method called before each unit test in this class. """ self.bond = Bond(atom1=None, atom2=None, order='D') self.orderList = ['S', 'D', 'T', 'B'] def testIsSingle(self): """ Test the Bond.isSingle() method. """ for order in self.orderList: bond = Bond(None, None, order=order) if order == 'S': self.assertTrue(bond.isSingle()) else: self.assertFalse(bond.isSingle()) def testIsDouble(self): """ Test the Bond.isDouble() method. """ for order in self.orderList: bond = Bond(None, None, order=order) if order == 'D': self.assertTrue(bond.isDouble()) else: self.assertFalse(bond.isDouble()) def testIsTriple(self): """ Test the Bond.isTriple() method. """ for order in self.orderList: bond = Bond(None, None, order=order) if order == 'T': self.assertTrue(bond.isTriple()) else: self.assertFalse(bond.isTriple()) def testIsBenzene(self): """ Test the Bond.isBenzene() method. """ for order in self.orderList: bond = Bond(None, None, order=order) if order == 'B': self.assertTrue(bond.isBenzene()) else: self.assertFalse(bond.isBenzene()) def testIncrementOrder(self): """ Test the Bond.incrementOrder() method. """ for order in self.orderList: bond = Bond(None, None, order=order) try: bond.incrementOrder() if order == 'S': self.assertTrue(bond.isDouble()) elif order == 'D': self.assertTrue(bond.isTriple()) except ActionError: self.assertTrue(order in ['T', 'B']) def testDecrementOrder(self): """ Test the Bond.decrementOrder() method. """ for order in self.orderList: bond = Bond(None, None, order=order) try: bond.decrementOrder() if order == 'D': self.assertTrue(bond.isSingle()) elif order == 'T': self.assertTrue(bond.isDouble()) except ActionError: self.assertTrue(order in ['S', 'B']) def testApplyActionBreakBond(self): """ Test the Bond.applyAction() method for a BREAK_BOND action. """ action = ['BREAK_BOND', '*1', 'S', '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail( 'Bond.applyAction() unexpectedly processed a BREAK_BOND action.' ) except ActionError: pass def testApplyActionFormBond(self): """ Test the Bond.applyAction() method for a FORM_BOND action. """ action = ['FORM_BOND', '*1', 'S', '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail( 'Bond.applyAction() unexpectedly processed a FORM_BOND action.' ) except ActionError: pass def testApplyActionIncrementBond(self): """ Test the Bond.applyAction() method for a CHANGE_BOND action. """ action = ['CHANGE_BOND', '*1', 1, '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) except ActionError: self.assertTrue('T' == order0 or 'B' == order0) def testApplyActionDecrementBond(self): """ Test the Bond.applyAction() method for a CHANGE_BOND action. """ action = ['CHANGE_BOND', '*1', -1, '*2'] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) except ActionError: self.assertTrue('S' == order0 or 'B' == order0) def testApplyActionGainRadical(self): """ Test the Bond.applyAction() method for a GAIN_RADICAL action. """ action = ['GAIN_RADICAL', '*1', 1] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail( 'Bond.applyAction() unexpectedly processed a GAIN_RADICAL action.' ) except ActionError: pass def testApplyActionLoseRadical(self): """ Test the Bond.applyAction() method for a LOSE_RADICAL action. """ action = ['LOSE_RADICAL', '*1', 1] for order0 in self.orderList: bond0 = Bond(None, None, order=order0) bond = bond0.copy() try: bond.applyAction(action) self.fail( 'Bond.applyAction() unexpectedly processed a LOSE_RADICAL action.' ) except ActionError: pass def testEquivalent(self): """ Test the GroupBond.equivalent() method. """ for order1 in self.orderList: for order2 in self.orderList: bond1 = Bond(None, None, order=order1) bond2 = Bond(None, None, order=order2) if order1 == order2: self.assertTrue(bond1.equivalent(bond2)) self.assertTrue(bond2.equivalent(bond1)) else: self.assertFalse(bond1.equivalent(bond2)) self.assertFalse(bond2.equivalent(bond1)) def testIsSpecificCaseOf(self): """ Test the Bond.isSpecificCaseOf() method. """ for order1 in self.orderList: for order2 in self.orderList: bond1 = Bond(None, None, order=order1) bond2 = Bond(None, None, order=order2) if order1 == order2: self.assertTrue(bond1.isSpecificCaseOf(bond2)) else: self.assertFalse(bond1.isSpecificCaseOf(bond2)) def testCopy(self): """ Test the Bond.copy() method. """ bond = self.bond.copy() self.assertEqual(self.bond.order, bond.order) def testPickle(self): """ Test that a Bond object can be successfully pickled and unpickled with no loss of information. """ import cPickle bond = cPickle.loads(cPickle.dumps(self.bond)) self.assertEqual(self.bond.order, bond.order)