def test_add_atom_bond_creation(): molecule = mol.Molecule() mol.add_atom(molecule, 6, 0, 0, 0) mol.add_atom(molecule, 6, 1, 0, 0) mol.add_bond(molecule, 0, 1, 1) npt.assert_equal(molecule.total_num_bonds, 1) npt.assert_equal(molecule.total_num_atoms, 2)
def test_stick(interactive=False): molecule = mol.Molecule() mol.add_atom(molecule, 6, 0, 0, 0) mol.add_atom(molecule, 6, 2, 0, 0) # Test errors for inadequate bonding data npt.assert_raises(ValueError, mol.stick, molecule) mol.add_bond(molecule, 0, 1, 1) colormodes = ['discrete', 'single'] bond_thickness = [0.1, 0.12] table = mol.PTable() colors = np.array([[table.atom_color(6)], [[150/255, 150/255, 150/255], [50/255, 50/255, 50/255]]], dtype=object) scene = window.Scene() for i, colormode in enumerate(colormodes): test_actor = mol.stick(molecule, colormode, bond_thickness[i]) scene.add(test_actor) scene.reset_camera() scene.reset_clipping_range() if interactive: window.show(scene) npt.assert_equal(scene.GetActors().GetNumberOfItems(), 1) arr = window.snapshot(scene) report = window.analyze_snapshot(arr, colors=colors[i]) npt.assert_equal(report.objects, 1) scene.clear() # Testing warnings npt.assert_warns(UserWarning, mol.stick, molecule, 'multiple')
def test_deep_copy_molecule(): molecule1 = mol.Molecule() mol.add_atom(molecule1, 6, 0, 0, 0) mol.add_atom(molecule1, 6, 1, 0, 0) mol.add_bond(molecule1, 0, 1, 1) molecule2 = mol.Molecule() mol.deep_copy_molecule(molecule2, molecule1) npt.assert_equal(molecule2.total_num_bonds, 1) npt.assert_equal(molecule2.total_num_atoms, 2)
def test_bond_order(): # Testing bond order get/set functions # Testing get_bond_order molecule = mol.Molecule() mol.add_atom(molecule, 6, 0, 0, 0) mol.add_atom(molecule, 6, 1, 0, 0) mol.add_bond(molecule, 0, 1, 3) npt.assert_equal(mol.get_bond_order(molecule, 0), 3) # Testing set_bond_order mol.set_bond_order(molecule, 0, 2) npt.assert_equal(mol.get_bond_order(molecule, 0), 2) # Testing get_all_bond_orders npt.assert_array_almost_equal(mol.get_all_bond_orders(molecule), np.array([2]))
def test_bounding_box(interactive=False): scene = window.Scene() molecule = mol.Molecule() mol.add_atom(molecule, 6, 0, 0, 0) mol.add_atom(molecule, 6, 1, 1, 1) mol.add_bond(molecule, 0, 1, 1) molecule_actor = mol.stick(molecule) test_box = mol.bounding_box(molecule, colors=(0, 1, 1), linewidth=0.1) scene.add(molecule_actor) scene.add(test_box) if interactive: window.show(scene) npt.assert_equal(scene.GetActors().GetNumberOfItems(), 2) table = mol.PTable() colors = np.array([table.atom_color(1), table.atom_color(6)]) arr = window.snapshot(scene) report = window.analyze_snapshot(arr, colors=colors) npt.assert_equal(report.objects, 1) scene.clear()