Beispiel #1
0
    def test_error_raises(self):
        """Tests for error raises."""
        with self.assertRaises(TypeError):
            AtomicGrid.special_init(np.arange(3),
                                    1.0,
                                    scales=np.arange(2),
                                    degs=np.arange(3))
        with self.assertRaises(ValueError):
            AtomicGrid.special_init(
                RadialGrid(np.arange(3), np.arange(3)),
                radius=1.0,
                scales=np.arange(2),
                degs=np.arange(0),
            )
        with self.assertRaises(ValueError):
            AtomicGrid.special_init(
                RadialGrid(np.arange(3), np.arange(3)),
                radius=1.0,
                scales=np.arange(2),
                degs=np.arange(4),
            )
        with self.assertRaises(ValueError):
            AtomicGrid._generate_atomic_grid(
                RadialGrid(np.arange(3), np.arange(3)), np.arange(2))
        with self.assertRaises(TypeError):
            AtomicGrid.special_init(
                RadialGrid(np.arange(3), np.arange(3)),
                radius=1.0,
                scales=np.array([0.3, 0.5, 0.7]),
                degs=np.array([3, 5, 7, 5]),
                center=(0, 0, 0),
            )
        with self.assertRaises(ValueError):
            AtomicGrid.special_init(
                RadialGrid(np.arange(3), np.arange(3)),
                radius=1.0,
                scales=np.array([0.3, 0.5, 0.7]),
                degs=np.array([3, 5, 7, 5]),
                center=np.array([0, 0, 0, 0]),
            )

        with self.assertRaises(TypeError):
            AtomicGrid(RadialGrid(np.arange(3), np.arange(3)), nums=110)
        with self.assertRaises(TypeError):
            AtomicGrid(RadialGrid(np.arange(3), np.arange(3)), degs=17)
        with self.assertRaises(ValueError):
            AtomicGrid(RadialGrid(np.arange(3), np.arange(3)),
                       degs=[17],
                       rotate=-1)
        with self.assertRaises(ValueError):
            AtomicGrid(RadialGrid(np.arange(3), np.arange(3)),
                       degs=[17],
                       rotate="asdfaf")
Beispiel #2
0
 def test_atomic_grid(self):
     """Test atomic grid center transilation."""
     rad_pts = np.array([0.1, 0.5, 1])
     rad_wts = np.array([0.3, 0.4, 0.3])
     rad_grid = RadialGrid(rad_pts, rad_wts)
     degs = np.array([3, 5, 7])
     # origin center
     # randome center
     pts, wts, ind = AtomicGrid._generate_atomic_grid(rad_grid, degs)
     ref_pts, ref_wts, ref_ind = AtomicGrid._generate_atomic_grid(
         rad_grid, degs)
     # diff grid points diff by center and same weights
     assert_allclose(pts, ref_pts)
     assert_allclose(wts, ref_wts)
Beispiel #3
0
 def test_atomic_grid(center):
     """Test atomic grid center transilation."""
     rad_pts = np.array([0.1, 0.5, 1])
     rad_wts = np.array([0.3, 0.4, 0.3])
     rad_grid = Grid(rad_pts, rad_wts)
     degs = np.array([3, 5, 7])
     # origin center
     center = np.array([0, 0, 0])
     # randome center
     ref_center = np.random.rand(3)
     pts, wts, ind = AtomicGrid._generate_atomic_grid(
         rad_grid, degs, center)
     ref_pts, ref_wts, ref_ind = AtomicGrid._generate_atomic_grid(
         rad_grid, degs, ref_center)
     # diff grid points diff by center and same weights
     assert_allclose(pts, ref_pts)
     assert_allclose(wts, ref_wts)
Beispiel #4
0
 def test_error_raises(self):
     """Tests for error raises."""
     with self.assertRaises(TypeError):
         AtomicGrid(np.arange(3),
                    1.0,
                    scales=np.arange(2),
                    degs=np.arange(3))
     with self.assertRaises(ValueError):
         AtomicGrid(
             Grid(np.arange(3), np.arange(3)),
             1.0,
             scales=np.arange(2),
             degs=np.arange(0),
         )
     with self.assertRaises(ValueError):
         AtomicGrid(
             Grid(np.arange(3), np.arange(3)),
             1.0,
             scales=np.arange(2),
             degs=np.arange(4),
         )
     with self.assertRaises(ValueError):
         AtomicGrid._generate_atomic_grid(Grid(np.arange(3), np.arange(3)),
                                          np.arange(2), np.array([0, 0, 0]))
     with self.assertRaises(TypeError):
         AtomicGrid(
             Grid(np.arange(3), np.arange(3)),
             1.0,
             scales=np.array([0.3, 0.5, 0.7]),
             degs=np.array([3, 5, 7, 5]),
             center=(0, 0, 0),
         )
     with self.assertRaises(ValueError):
         AtomicGrid(
             Grid(np.arange(3), np.arange(3)),
             1.0,
             scales=np.array([0.3, 0.5, 0.7]),
             degs=np.array([3, 5, 7, 5]),
             center=np.array([0, 0, 0, 0]),
         )
Beispiel #5
0
 def test_generate_atomic_grid(self):
     """Test for generating atomic grid."""
     # setup testing class
     rad_pts = np.array([0.1, 0.5, 1])
     rad_wts = np.array([0.3, 0.4, 0.3])
     rad_grid = RadialGrid(rad_pts, rad_wts)
     degs = np.array([3, 5, 7])
     pts, wts, ind = AtomicGrid._generate_atomic_grid(rad_grid, degs)
     assert len(pts) == 46
     assert_equal(ind, [0, 6, 20, 46])
     # set tests for slicing grid from atomic grid
     for i in range(3):
         # set each layer of points
         ref_grid = generate_lebedev_grid(degree=degs[i])
         # check for each point
         assert_allclose(pts[ind[i]:ind[i + 1]],
                         ref_grid.points * rad_pts[i])
         # check for each weight
         assert_allclose(
             wts[ind[i]:ind[i + 1]],
             ref_grid.weights * rad_wts[i] * rad_pts[i]**2,
         )