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")
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)
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)
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]), )
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, )