Esempio n. 1
0
    def test_repr(self):
        frame = Frame()
        self.assertEqual(frame.__repr__(), "Frame with 0 atoms")
        frame.resize(4)
        self.assertEqual(frame.__repr__(), "Frame with 4 atoms")

        self.assertEqual(frame.atoms.__repr__(), "[Atom(''), Atom(''), Atom(''), Atom('')]")
Esempio n. 2
0
    def test_iter(self):
        frame = Frame()
        frame.resize(3)

        for i, atom in enumerate(frame.atoms):
            self.assertEqual(atom.name, "")
        self.assertEqual(i, 2)
Esempio n. 3
0
    def test_repr(self):
        frame = Frame()
        self.assertEqual(frame.__repr__(), "Frame with 0 atoms")
        frame.resize(4)
        self.assertEqual(frame.__repr__(), "Frame with 4 atoms")

        self.assertEqual(frame.atoms.__repr__(),
                         "[Atom(''), Atom(''), Atom(''), Atom('')]")
Esempio n. 4
0
    def test_atoms_count(self):
        frame = Frame()
        self.assertEqual(len(frame.atoms), 0)

        frame.resize(4)
        self.assertEqual(len(frame.atoms), 4)

        frame.remove(2)
        self.assertEqual(len(frame.atoms), 3)
Esempio n. 5
0
    def test_atoms_count(self):
        frame = Frame()
        self.assertEqual(len(frame.atoms), 0)

        frame.resize(4)
        self.assertEqual(len(frame.atoms), 4)

        frame.remove(2)
        self.assertEqual(len(frame.atoms), 3)
Esempio n. 6
0
    def test_copy(self):
        frame = Frame()
        cloned = copy.copy(frame)

        self.assertEqual(len(frame.atoms), 0)
        self.assertEqual(len(cloned.atoms), 0)

        frame.resize(6)
        self.assertEqual(len(frame.atoms), 6)
        self.assertEqual(len(cloned.atoms), 0)
Esempio n. 7
0
    def test_copy(self):
        frame = Frame()
        cloned = copy.copy(frame)

        self.assertEqual(len(frame.atoms), 0)
        self.assertEqual(len(cloned.atoms), 0)

        frame.resize(6)
        self.assertEqual(len(frame.atoms), 6)
        self.assertEqual(len(cloned.atoms), 0)
Esempio n. 8
0
    def test_iter(self):
        frame = Frame()
        frame.resize(3)

        for i, atom in enumerate(frame.atoms):
            self.assertEqual(atom.name, "")
        self.assertEqual(i, 2)

        for i, atom in enumerate(frame.topology.atoms):
            self.assertEqual(atom.name, "")
        self.assertEqual(i, 2)
Esempio n. 9
0
    def test_topology(self):
        frame = Frame()
        frame.resize(2)

        topology = Topology()
        topology.atoms.append(Atom("Zn"))
        topology.atoms.append(Atom("Ar"))

        frame.topology = topology
        self.assertEqual(frame.atoms[0].name, "Zn")
        self.assertEqual(frame.atoms[1].name, "Ar")
Esempio n. 10
0
    def test_topology(self):
        frame = Frame()
        frame.resize(2)

        topology = Topology()
        topology.atoms.append(Atom("Zn"))
        topology.atoms.append(Atom("Ar"))

        frame.topology = topology
        self.assertEqual(frame.topology.atoms[0].name, "Zn")
        self.assertEqual(frame.topology.atoms[1].name, "Ar")

        self.assertEqual(frame.atoms[0].name, "Zn")
        self.assertEqual(frame.atoms[1].name, "Ar")
Esempio n. 11
0
    def test_positions(self):
        frame = Frame()
        frame.resize(4)

        expected = np.array(
            [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0], [10.0, 11.0, 12.0]],
            np.float64,
        )
        np.copyto(frame.positions, expected)
        self.assertEqual(frame.positions.all(), expected.all())

        frame.positions[3, 2] = 42
        self.assertEqual(frame.positions[3, 2], 42)

        # Checking empty frame positions access
        _ = Frame().positions
Esempio n. 12
0
    def test_positions(self):
        frame = Frame()
        frame.resize(4)

        expected = np.array(
            [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0],
             [10.0, 11.0, 12.0]],
            np.float64,
        )
        np.copyto(frame.positions, expected)
        self.assertEqual(frame.positions.all(), expected.all())

        frame.positions[3, 2] = 42
        self.assertEqual(frame.positions[3, 2], 42)

        # Checking empty frame positions access
        _ = Frame().positions
Esempio n. 13
0
    def test_velocities(self):
        frame = Frame()
        frame.resize(4)

        self.assertFalse(frame.has_velocities())
        frame.add_velocities()
        self.assertTrue(frame.has_velocities())

        expected = np.array(
            [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0], [10.0, 11.0, 12.0]],
            np.float64,
        )
        np.copyto(frame.velocities, expected)
        self.assertEqual(frame.velocities.all(), expected.all())

        frame.velocities[3, 2] = 42
        self.assertEqual(frame.velocities[3, 2], 42)

        # Checking empty frame velocities access
        frame = Frame()
        frame.add_velocities()
        _ = frame.velocities
Esempio n. 14
0
    def test_velocities(self):
        frame = Frame()
        frame.resize(4)

        self.assertFalse(frame.has_velocities())
        frame.add_velocities()
        self.assertTrue(frame.has_velocities())

        expected = np.array(
            [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0],
             [10.0, 11.0, 12.0]],
            np.float64,
        )
        np.copyto(frame.velocities, expected)
        self.assertEqual(frame.velocities.all(), expected.all())

        frame.velocities[3, 2] = 42
        self.assertEqual(frame.velocities[3, 2], 42)

        # Checking empty frame velocities access
        frame = Frame()
        frame.add_velocities()
        _ = frame.velocities
Esempio n. 15
0
# Any copyright is dedicated to the Public Domain.
# http://creativecommons.org/publicdomain/zero/1.0/
#!/usr/bin/env python
import numpy as np
from chemfiles import Topology, Frame, Atom, UnitCell, Trajectory

topology = Topology()
topology.add_atom(Atom("H"))
topology.add_atom(Atom("O"))
topology.add_atom(Atom("H"))

topology.add_bond(0, 1)
topology.add_bond(2, 1)

frame = Frame()
frame.resize(3)
frame.set_topology(topology)

positions = frame.positions()
positions[0, :] = np.array([1.0, 0.0, 0.0])
positions[1, :] = np.array([0.0, 0.0, 0.0])
positions[2, :] = np.array([0.0, 1.0, 0.0])

frame.add_atom(Atom("O"), [5.0, 0.0, 0.0])
frame.add_atom(Atom("C"), [6.0, 0.0, 0.0])
frame.add_atom(Atom("O"), [7.0, 0.0, 0.0])
frame.add_bond(3, 4)
frame.add_bond(4, 5)

frame.set_cell(UnitCell(10, 10, 10))
Esempio n. 16
0
# Any copyright is dedicated to the Public Domain.
# http://creativecommons.org/publicdomain/zero/1.0/
#!/usr/bin/env python
import numpy as np
from chemfiles import Topology, Frame, Atom, UnitCell, Trajectory

topology = Topology()
topology.atoms.append(Atom("H"))
topology.atoms.append(Atom("O"))
topology.atoms.append(Atom("H"))

topology.add_bond(0, 1)
topology.add_bond(2, 1)

frame = Frame()
frame.resize(3)
frame.topology = topology

frame.positions[0, :] = np.array([1.0, 0.0, 0.0])
frame.positions[1, :] = np.array([0.0, 0.0, 0.0])
frame.positions[2, :] = np.array([0.0, 1.0, 0.0])

frame.add_atom(Atom("O"), [5.0, 0.0, 0.0])
frame.add_atom(Atom("C"), [6.0, 0.0, 0.0])
frame.add_atom(Atom("O"), [7.0, 0.0, 0.0])
frame.add_bond(3, 4)
frame.add_bond(4, 5)

frame.cell = UnitCell(10, 10, 10)

with Trajectory("water-co2.pdb", 'w') as trajectory:
Esempio n. 17
0
 def test_out_of_bounds(self):
     frame = Frame()
     frame.resize(3)
     _ = frame.atoms[2]
     with self.assertRaises(IndexError):
         _ = frame.atoms[6]
Esempio n. 18
0
 def test_out_of_bounds(self):
     frame = Frame()
     frame.resize(3)
     _ = frame.atoms[2]
     with self.assertRaises(IndexError):
         _ = frame.atoms[6]