def test_decontracted(self):
        """
        Test decontracting of basis
        """
        # Check that s and p are split upon decontraction
        self.assertEqual(len(self.basis.decontracted()), 11)

        # Check that decontraction removes duplicates
        basis2 = Basis('C', [self.bfs, self.bfp, self.bfsp, self.bfs, self.bfp, self.bfsp])
        self.assertEqual(self.basis.decontracted(), basis2.decontracted())
Beispiel #2
0
    def test_decontracted(self):
        """
        Test decontracting of basis
        """
        # Check that s and p are split upon decontraction
        self.assertEqual(len(self.basis.decontracted()), 11)

        # Check that decontraction removes duplicates
        basis2 = Basis(
            'C',
            [self.bfs, self.bfp, self.bfsp, self.bfs, self.bfp, self.bfsp])
        self.assertEqual(self.basis.decontracted(), basis2.decontracted())
Beispiel #3
0
class TestBasis(unittest.TestCase):
    """Tests a basis, which contains BasisFunctions"""
    def setUp(self):
        self.bfs = BasisFunction('S', [1, 2], [0.5, 0.5])
        self.bfp = BasisFunction('P', [0.01, 0.2, 1], [0.3, 0.4, 0.3])
        self.bfsp = BasisFunction('SP', [0.1, 0.4, 3],
                                  [[0.2, 0.3, 0.5], [0.1, 0.3, 0.6]])
        self.basis = Basis('C', [self.bfs, self.bfp, self.bfsp])

    def test_lengetsetdeleq(self):
        """Test __len__, __getitem__ and __setitem__, __delitem__, __eq__"""
        self.assertEqual(3, len(self.basis))
        bf = BasisFunction('F', [4, 9], [0.1, 0.9])
        self.basis[0] = bf
        self.assertEqual(bf, self.basis[0])
        self.assertRaises(SyntaxError, self.basis.__setitem__, 0, 1)
        del self.basis[2]
        self.assertRaises(IndexError, self.basis.__getitem__, 2)
        basis = Basis('C', [self.bfsp])
        basis2 = Basis('C', [self.bfsp])
        self.assertEqual(basis, basis2)

    def test_reprstrprint(self):
        """Test print"""
        c_gamess = '''C
S     2
  1         1.0000000   0.5000000
  2         2.0000000   0.5000000
P     3
  1         0.0100000   0.3000000
  2         0.2000000   0.4000000
  3         1.0000000   0.3000000
SP    3
  1         0.1000000   0.2000000   0.1000000
  2         0.4000000   0.3000000   0.3000000
  3         3.0000000   0.5000000   0.6000000
'''
        c_gaussian94 = '''C    0
S     2
        1.0000000   0.5000000
        2.0000000   0.5000000
P     3
        0.0100000   0.3000000
        0.2000000   0.4000000
        1.0000000   0.3000000
SP    3
        0.1000000   0.2000000   0.1000000
        0.4000000   0.3000000   0.3000000
        3.0000000   0.5000000   0.6000000
'''
        self.assertEqual('<Basis C 3>', repr(self.basis))
        self.assertEqual(c_gaussian94, str(self.basis))
        self.assertEqual(c_gamess, self.basis.print('gamess'))

    def test_decontracted(self):
        """
        Test decontracting of basis
        """
        # Check that s and p are split upon decontraction
        self.assertEqual(len(self.basis.decontracted()), 11)

        # Check that decontraction removes duplicates
        basis2 = Basis(
            'C',
            [self.bfs, self.bfp, self.bfsp, self.bfs, self.bfp, self.bfsp])
        self.assertEqual(self.basis.decontracted(), basis2.decontracted())
class TestBasis(unittest.TestCase):
    """Tests a basis, which contains BasisFunctions"""
    def setUp(self):
        self.bfs = BasisFunction('S', [1, 2], [0.5, 0.5])
        self.bfp = BasisFunction('P', [0.01, 0.2, 1], [0.3, 0.4, 0.3])
        self.bfsp = BasisFunction('SP', [0.1, 0.4, 3], [[0.2, 0.3, 0.5], [0.1, 0.3, 0.6]])
        self.basis = Basis('C', [self.bfs, self.bfp, self.bfsp])

    def test_lengetsetdeleq(self):
        """Test __len__, __getitem__ and __setitem__, __delitem__, __eq__"""
        self.assertEqual(3, len(self.basis))
        bf = BasisFunction('F', [4, 9], [0.1, 0.9])
        self.basis[0] = bf
        self.assertEqual(bf, self.basis[0])
        self.assertRaises(SyntaxError, self.basis.__setitem__, 0, 1)
        del self.basis[2]
        self.assertRaises(IndexError, self.basis.__getitem__, 2)
        basis = Basis('C', [self.bfsp])
        basis2 = Basis('C', [self.bfsp])
        self.assertEqual(basis, basis2)

    def test_reprstrprint(self):
        """Test print"""
        c_gamess = '''C
S     2
  1         1.0000000   0.5000000
  2         2.0000000   0.5000000
P     3
  1         0.0100000   0.3000000
  2         0.2000000   0.4000000
  3         1.0000000   0.3000000
SP    3
  1         0.1000000   0.2000000   0.1000000
  2         0.4000000   0.3000000   0.3000000
  3         3.0000000   0.5000000   0.6000000
'''
        c_gaussian94 = '''C    0
S     2
        1.0000000   0.5000000
        2.0000000   0.5000000
P     3
        0.0100000   0.3000000
        0.2000000   0.4000000
        1.0000000   0.3000000
SP    3
        0.1000000   0.2000000   0.1000000
        0.4000000   0.3000000   0.3000000
        3.0000000   0.5000000   0.6000000
'''
        self.assertEqual('<Basis C 3>', repr(self.basis))
        self.assertEqual(c_gaussian94, str(self.basis))
        self.assertEqual(c_gamess, self.basis.print('gamess'))

    def test_decontracted(self):
        """
        Test decontracting of basis
        """
        # Check that s and p are split upon decontraction
        self.assertEqual(len(self.basis.decontracted()), 11)

        # Check that decontraction removes duplicates
        basis2 = Basis('C', [self.bfs, self.bfp, self.bfsp, self.bfs, self.bfp, self.bfsp])
        self.assertEqual(self.basis.decontracted(), basis2.decontracted())