diff --git a/.editorconfig b/.editorconfig index df64623b..dde5c5bf 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# EditorConfig is awesome: https://EditorConfig.org +# EditorConfig: https://EditorConfig.org root = true diff --git a/.github/workflows/pytest.yaml b/.github/workflows/pytest.yaml index 8702fa81..9fa22b5c 100644 --- a/.github/workflows/pytest.yaml +++ b/.github/workflows/pytest.yaml @@ -9,14 +9,17 @@ on: pull_request: jobs: - tests: + pytest: name: "Python ${{ matrix.py }} on OS ${{ matrix.os }}" runs-on: ${{ matrix.os }} + env: + COVERAGE_SINGLE: 80 + COVERAGE_TOTAL: 90 strategy: matrix: os: ["ubuntu-latest", "windows-latest"] - py: ["3.7", "3.9", "3.10", "3.11"] + py: ["3.7", "3.8", "3.9", "3.10", "3.11"] steps: - uses: "actions/checkout@v3" @@ -36,18 +39,6 @@ jobs: # Need editable mode in order to include the test files pip install -e . - - name: Run pytest - uses: pavelzw/pytest-action@v2 - with: - verbose: true - emoji: true - job-summary: true - click-to-expand: true - custom-arguments: "--junitxml=pytest.xml --cov-report=term-missing:skip-covered --cov=gbasis" - report-title: 'Test Report' - - - name: Pytest coverage comment - uses: MishaKav/pytest-coverage-comment@main - with: - pytest-coverage-path: ./pytest-coverage.txt - junitxml-path: ./pytest.xml + - name: Run Pytest + run: | + pytest --cov=./gbasis/ --cov-fail-under=90 --cov-report term . diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 669bb11e..fff0c061 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,3 +1,5 @@ +files: "gbasis/|tests/" +exclude: "website/" repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 diff --git a/gbasis/base_four_symm.py b/gbasis/base_four_symm.py index 28f375a6..7ce64df8 100644 --- a/gbasis/base_four_symm.py +++ b/gbasis/base_four_symm.py @@ -2,9 +2,10 @@ import abc import itertools as it +import numpy as np + from gbasis.base import BaseGaussianRelatedArray from gbasis.spherical import generate_transformation -import numpy as np # pylint: disable=W0235 diff --git a/gbasis/base_one.py b/gbasis/base_one.py index 5da708c3..1d53d802 100644 --- a/gbasis/base_one.py +++ b/gbasis/base_one.py @@ -1,9 +1,10 @@ """Base class for arrays that depend on one contracted Gaussian.""" import abc +import numpy as np + from gbasis.base import BaseGaussianRelatedArray from gbasis.spherical import generate_transformation -import numpy as np # pylint: disable=W0235 diff --git a/gbasis/base_two_asymm.py b/gbasis/base_two_asymm.py index 5d5c2e69..edcc709c 100644 --- a/gbasis/base_two_asymm.py +++ b/gbasis/base_two_asymm.py @@ -1,9 +1,10 @@ """Base class for arrays that depend on two contracted Gaussians.""" import abc +import numpy as np + from gbasis.base import BaseGaussianRelatedArray from gbasis.spherical import generate_transformation -import numpy as np # pylint: disable=W0235 diff --git a/gbasis/base_two_symm.py b/gbasis/base_two_symm.py index 2358a30a..ce7b927c 100644 --- a/gbasis/base_two_symm.py +++ b/gbasis/base_two_symm.py @@ -1,9 +1,10 @@ """Base class for arrays that depend on two contracted Gaussians.""" import abc +import numpy as np + from gbasis.base import BaseGaussianRelatedArray from gbasis.spherical import generate_transformation -import numpy as np # pylint: disable=W0235 diff --git a/gbasis/contractions.py b/gbasis/contractions.py index 3c1183e7..eb7b6987 100644 --- a/gbasis/contractions.py +++ b/gbasis/contractions.py @@ -3,6 +3,8 @@ import numpy as np from gbasis.utils import factorial2 +from gbasis.utils import factorial2 + class GeneralizedContractionShell: r"""Data class for generalized contractions. @@ -496,8 +498,7 @@ def angmom_components_sph(self): """ return tuple( - ["s{}".format(m) for m in range(self.angmom, 0, -1)] - + ["c{}".format(m) for m in range(self.angmom + 1)] + [f"s{m}" for m in range(self.angmom, 0, -1)] + [f"c{m}" for m in range(self.angmom + 1)] ) @property diff --git a/gbasis/evals/density.py b/gbasis/evals/density.py index c0712924..f68a251c 100644 --- a/gbasis/evals/density.py +++ b/gbasis/evals/density.py @@ -1,9 +1,10 @@ """Density Evaluation.""" -from gbasis.evals.eval import evaluate_basis -from gbasis.evals.eval_deriv import evaluate_deriv_basis import numpy as np from scipy.special import comb +from gbasis.evals.eval import evaluate_basis +from gbasis.evals.eval_deriv import evaluate_deriv_basis + def evaluate_density_using_evaluated_orbs(one_density_matrix, orb_eval): """Return the evaluation of the density given the evaluated orbitals. @@ -696,6 +697,10 @@ def evaluate_general_kinetic_energy_density( ) if alpha != 0: general_kinetic_energy_density += alpha * evaluate_density_laplacian( - one_density_matrix, basis, points, transform=transform, deriv_type=deriv_type + one_density_matrix, + basis, + points, + transform=transform, + deriv_type=deriv_type, ) return general_kinetic_energy_density diff --git a/gbasis/evals/electrostatic_potential.py b/gbasis/evals/electrostatic_potential.py index d90dd3ca..69808ac1 100644 --- a/gbasis/evals/electrostatic_potential.py +++ b/gbasis/evals/electrostatic_potential.py @@ -1,7 +1,8 @@ """Module for computing electrostatic potential integrals.""" -from gbasis.integrals.point_charge import point_charge_integral import numpy as np +from gbasis.integrals.point_charge import point_charge_integral + def electrostatic_potential( basis, diff --git a/gbasis/evals/eval.py b/gbasis/evals/eval.py index bd14b8d6..73f29952 100644 --- a/gbasis/evals/eval.py +++ b/gbasis/evals/eval.py @@ -1,8 +1,9 @@ """Functions for evaluating Gaussian contractions.""" +import numpy as np + from gbasis.base_one import BaseOneIndex from gbasis.contractions import GeneralizedContractionShell from gbasis.evals._deriv import _eval_deriv_contractions -import numpy as np class Eval(BaseOneIndex): diff --git a/gbasis/evals/eval_deriv.py b/gbasis/evals/eval_deriv.py index bda118e0..9fbb94c9 100644 --- a/gbasis/evals/eval_deriv.py +++ b/gbasis/evals/eval_deriv.py @@ -1,9 +1,12 @@ """Functions for evaluating Gaussian primitives.""" +import numpy as np + from gbasis.base_one import BaseOneIndex from gbasis.contractions import GeneralizedContractionShell -from gbasis.evals._deriv import _eval_deriv_contractions -from gbasis.evals._deriv import _eval_first_second_order_deriv_contractions -import numpy as np +from gbasis.evals._deriv import ( + _eval_deriv_contractions, + _eval_first_second_order_deriv_contractions, +) class EvalDeriv(BaseOneIndex): diff --git a/gbasis/evals/stress_tensor.py b/gbasis/evals/stress_tensor.py index 61c1eada..722289a3 100644 --- a/gbasis/evals/stress_tensor.py +++ b/gbasis/evals/stress_tensor.py @@ -1,10 +1,11 @@ """Module for computing properties related to the stress tensor.""" +import numpy as np + from gbasis.evals.density import ( evaluate_density_laplacian, evaluate_deriv_density, evaluate_deriv_reduced_density_matrix, ) -import numpy as np # TODO: need to be tested against reference @@ -149,7 +150,8 @@ def evaluate_ehrenfest_force(one_density_matrix, basis, points, alpha=1, beta=0, - (1 - 2\alpha) \sum_i \left. - \frac{\partial^3}{\partial r_i \partial r_j \partial r'_i} \gamma(\mathbf{r}, \mathbf{r}) + \frac{\partial^3}{\partial r_i \partial r_j \partial r'_i} \gamma(\mathbf{r}, + \mathbf{r}) \right|_{\mathbf{r} = \mathbf{r}' = \mathbf{r}_n}\\ &+ \frac{1}{2} \beta \left. diff --git a/gbasis/integrals/_diff_operator_int.py b/gbasis/integrals/_diff_operator_int.py index d590d8bf..a01be2f5 100644 --- a/gbasis/integrals/_diff_operator_int.py +++ b/gbasis/integrals/_diff_operator_int.py @@ -1,9 +1,10 @@ """Integrals over differential operator involving contracted Cartesian Gaussians.""" +import numpy as np + from gbasis.integrals._moment_int import ( _cleanup_intermediate_integrals, _compute_multipole_moment_integrals_intermediate, ) -import numpy as np # FIXME: returns nan when exponent is zero diff --git a/gbasis/integrals/_one_elec_int.py b/gbasis/integrals/_one_elec_int.py index 688d7d9d..a3691be4 100644 --- a/gbasis/integrals/_one_elec_int.py +++ b/gbasis/integrals/_one_elec_int.py @@ -1,5 +1,6 @@ """One-electron integrals involving Contracted Cartesian Gaussians.""" import numpy as np + from gbasis.utils import factorial2 diff --git a/gbasis/integrals/_two_elec_int.py b/gbasis/integrals/_two_elec_int.py index 6ff2a651..526e44d5 100644 --- a/gbasis/integrals/_two_elec_int.py +++ b/gbasis/integrals/_two_elec_int.py @@ -1,5 +1,6 @@ """Two-electron integrals involving Contracted Cartesian Gaussians.""" import numpy as np + from gbasis.utils import factorial2 # pylint: disable=C0103,R0914,R0915 diff --git a/gbasis/integrals/angular_momentum.py b/gbasis/integrals/angular_momentum.py index eb0c077c..10241337 100644 --- a/gbasis/integrals/angular_momentum.py +++ b/gbasis/integrals/angular_momentum.py @@ -1,11 +1,12 @@ """Module for evaluating the integral over the angular momentum operator.""" +import numpy as np + from gbasis.base_two_symm import BaseTwoIndexSymmetric from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._diff_operator_int import ( _compute_differential_operator_integrals_intermediate, ) from gbasis.integrals._moment_int import _compute_multipole_moment_integrals_intermediate -import numpy as np # TODO: need to test against reference diff --git a/gbasis/integrals/electron_repulsion.py b/gbasis/integrals/electron_repulsion.py index 8daa8e1a..8ac4b63f 100644 --- a/gbasis/integrals/electron_repulsion.py +++ b/gbasis/integrals/electron_repulsion.py @@ -1,4 +1,6 @@ """Electron-electron repulsion integral.""" +import numpy as np + from gbasis.base_four_symm import BaseFourIndexSymmetric from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._two_elec_int import ( @@ -6,7 +8,6 @@ _compute_two_elec_integrals_angmom_zero, ) from gbasis.integrals.point_charge import PointChargeIntegral -import numpy as np class ElectronRepulsionIntegral(BaseFourIndexSymmetric): diff --git a/gbasis/integrals/kinetic_energy.py b/gbasis/integrals/kinetic_energy.py index ac67c263..0c8c3072 100644 --- a/gbasis/integrals/kinetic_energy.py +++ b/gbasis/integrals/kinetic_energy.py @@ -1,8 +1,9 @@ """Module for evaluating the kinetic energy integral.""" +import numpy as np + from gbasis.base_two_symm import BaseTwoIndexSymmetric from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._diff_operator_int import _compute_differential_operator_integrals -import numpy as np class KineticEnergyIntegral(BaseTwoIndexSymmetric): diff --git a/gbasis/integrals/moment.py b/gbasis/integrals/moment.py index 44ec36ef..6d3978c3 100644 --- a/gbasis/integrals/moment.py +++ b/gbasis/integrals/moment.py @@ -1,8 +1,9 @@ """Module for computing the moments of a basis set.""" +import numpy as np + from gbasis.base_two_symm import BaseTwoIndexSymmetric from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._moment_int import _compute_multipole_moment_integrals -import numpy as np class Moment(BaseTwoIndexSymmetric): diff --git a/gbasis/integrals/momentum.py b/gbasis/integrals/momentum.py index ac4b1dd9..b0aa4b40 100644 --- a/gbasis/integrals/momentum.py +++ b/gbasis/integrals/momentum.py @@ -1,8 +1,9 @@ """Module for evaluating the integral over the momentum operator.""" +import numpy as np + from gbasis.base_two_symm import BaseTwoIndexSymmetric from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._diff_operator_int import _compute_differential_operator_integrals -import numpy as np # TODO: need to test against reference diff --git a/gbasis/integrals/nuclear_electron_attraction.py b/gbasis/integrals/nuclear_electron_attraction.py index a6d139f1..d6e96d96 100644 --- a/gbasis/integrals/nuclear_electron_attraction.py +++ b/gbasis/integrals/nuclear_electron_attraction.py @@ -1,7 +1,8 @@ """Module for computing the nuclear electron attraction.""" -from gbasis.integrals.point_charge import point_charge_integral import numpy as np +from gbasis.integrals.point_charge import point_charge_integral + def nuclear_electron_attraction_integral(basis, nuclear_coords, nuclear_charges, transform=None): """Return the nuclear electron attraction integrals of the basis set in the Cartesian form. diff --git a/gbasis/integrals/overlap.py b/gbasis/integrals/overlap.py index a420b4f8..a3f06ad8 100644 --- a/gbasis/integrals/overlap.py +++ b/gbasis/integrals/overlap.py @@ -1,8 +1,9 @@ """Functions for computing overlap of a basis set.""" +import numpy as np + from gbasis.base_two_symm import BaseTwoIndexSymmetric from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._moment_int import _compute_multipole_moment_integrals -import numpy as np class Overlap(BaseTwoIndexSymmetric): diff --git a/gbasis/integrals/point_charge.py b/gbasis/integrals/point_charge.py index b07dd3ff..9730ea47 100644 --- a/gbasis/integrals/point_charge.py +++ b/gbasis/integrals/point_charge.py @@ -1,9 +1,10 @@ """Module for computing point charge integrals.""" +import numpy as np +from scipy.special import hyp1f1 # pylint: disable=E0611 + from gbasis.base_two_symm import BaseTwoIndexSymmetric from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._one_elec_int import _compute_one_elec_integrals -import numpy as np -from scipy.special import hyp1f1 # pylint: disable=E0611 class PointChargeIntegral(BaseTwoIndexSymmetric): @@ -37,7 +38,9 @@ class PointChargeIntegral(BaseTwoIndexSymmetric): Boys function used to evaluate the one-electron integral. `M` is the number of orders that will be evaluated. `K_a` and `K_b` are the number of primitives on the left and right side, respectively. - construct_array_contraction(self, contractions_one, contractions_two, points_coords, points_charge) + construct_array_contraction(self, contractions_one, contractions_two, points_coords, + **points_charge)** + Return the point charge integrals for the given `GeneralizedContractionShell` instances. `M_1` is the number of segmented contractions with the same exponents (and angular momentum) associated with the first index. diff --git a/gbasis/parsers.py b/gbasis/parsers.py index d25aca05..4e5a03ec 100644 --- a/gbasis/parsers.py +++ b/gbasis/parsers.py @@ -1,9 +1,10 @@ """Parsers for reading basis set files.""" import re -from gbasis.contractions import GeneralizedContractionShell import numpy as np +from gbasis.contractions import GeneralizedContractionShell + def parse_nwchem(nwchem_basis_file): """Parse nwchem basis set file. @@ -26,7 +27,7 @@ def parse_nwchem(nwchem_basis_file): """ # pylint: disable=R0914 - with open(nwchem_basis_file, "r") as basis_fh: + with open(nwchem_basis_file) as basis_fh: nwchem_basis = basis_fh.read() data = re.split(r"\n\s*(\w[\w]?)[ ]+(\w+)\s*\n", nwchem_basis) @@ -176,12 +177,12 @@ def make_contractions(basis_dict, atoms, coords, coord_types, tol=1e-20, overlap Atoms at which the contractions are centered. coords : np.ndarray(N, 3) Coordinates of each atom. - coord_types : {"cartesian"/"c", list/tuple of "cartesian"/"c" or "spherical"/"p", "spherical"/"p"} + coord_types: {"cartesian"/"c", list/tuple of "cartesian"/"c", "spherical"/"p", "spherical"/"p"} Types of the coordinate system for the contractions. If "cartesian" or "c", then all of the contractions are treated as Cartesian contractions. If "spherical" or "p", then all of the contractions are treated as spherical contractions. - If list/tuple, then each entry must be a "cartesian" (or "c") or "spherical" (or "p") to specify the - coordinate type of each `GeneralizedContractionShell` instance. + If list/tuple, then each entry must be a "cartesian" (or "c") or "spherical" (or "p") to + specify the coordinate type of each `GeneralizedContractionShell` instance. Default value is "spherical". ovr : bool Flag for performing overlap screening between contractions. @@ -233,8 +234,8 @@ def make_contractions(basis_dict, atoms, coords, coord_types, tol=1e-20, overlap if len(coord_types) != num_coord_types: raise ValueError( - f"If coord_types is a list, it must be the same length as the total number of contractions." - f"got {len(coord_types)}" + f"If coord_types is a list, it must be the same length " + f"as the total number of contractions. got {len(coord_types)}" ) # make shells diff --git a/gbasis/spherical.py b/gbasis/spherical.py index 610ef38a..5f3ffede 100644 --- a/gbasis/spherical.py +++ b/gbasis/spherical.py @@ -4,6 +4,7 @@ import numpy as np from scipy.special import comb, factorial + from gbasis.utils import factorial2 @@ -45,7 +46,8 @@ def expansion_coeff(angmom, mag, i, j, k): C^{angmom,mag,i,j,k} = -1^{i + k - \text{shift_factor}} * (1/4)^i * {angmom \choose i} * {(angmom - i) \choose (|mag| + i)} * {i \choose j} * {|mag| \choose 2 * k}, - where :math:`shift_factor = 0` if :math:`mag >= 0` and :math:`shift_factor = 1/2` if :math:`mag < 0` . + where :math:`shift_factor = 0` if :math:`mag >= 0` and :math:`shift_factor = 1/2` + if :math:`mag < 0`. Parameters ---------- @@ -122,7 +124,8 @@ def harmonic_norm(angmom, mag): Calculate the normalization constant of a real solid harmonic. .. math:: - N^S_{angmom,m} = 1/(2^{|m|} * angmom!) * \sqrt{2 * (angmom + |{m}|)! * (angmom - |{m}|)! / 2^{\delta_0^m}}, + N^S_{angmom,m} = 1/(2^{|m|} * angmom!) * \sqrt{2 * (angmom + |{m}|)! * (angmom - |{m}|)! / + 2^{\delta_0^m}}, where :math: `del{0, m}` is the Kronecker delta of 0 and m. @@ -300,10 +303,7 @@ def generate_transformation(angmom, cartesian_order, spherical_order, apply_from len(spherical_order) == 2 * angmom + 1 # Strip out "-" from the ordering to make sure the right components are there and {x.replace("-", "") for x in spherical_order} - == set( - ["s{}".format(m) for m in range(angmom, 0, -1)] - + ["c{}".format(m) for m in range(angmom + 1)] - ) + == set([f"s{m}" for m in range(angmom, 0, -1)] + [f"c{m}" for m in range(angmom + 1)]) ): raise ValueError( "`spherical_order` must contain exactly 2 * `angmom` + 1 pure function strings, with " diff --git a/gbasis/wrappers.py b/gbasis/wrappers.py index 40cd942b..bc4fb95d 100644 --- a/gbasis/wrappers.py +++ b/gbasis/wrappers.py @@ -1,7 +1,8 @@ """Module for interfacing to other quantum chemistry packages.""" -from gbasis.contractions import GeneralizedContractionShell import numpy as np +from gbasis.contractions import GeneralizedContractionShell + def from_iodata(mol): """Return basis set stored within the `IOData` instance in `iodata`. @@ -104,7 +105,7 @@ def angmom_components_sph(self): if self.angmom not in sph_conventions: raise ValueError( "Given convention does not support spherical contractions for the angular " - "momentum {0}".format(self.angmom) + f"momentum {self.angmom}" ) return tuple(sph_conventions[self.angmom]) @@ -112,7 +113,7 @@ def angmom_components_sph(self): if molbasis.primitive_normalization != "L2": # pragma: no cover raise ValueError( "Only L2 normalization scheme is supported in `gbasis`. Given `IOData` instance uses " - "primitive normalization scheme, {}".format(molbasis.primitive_normalization) + f"primitive normalization scheme, {molbasis.primitive_normalization}" ) basis = [] diff --git a/pyproject.toml b/pyproject.toml index fb4f3325..aa0a9985 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -79,7 +79,7 @@ line-length = 100 # RUF is Ruff-specific rules select = ["E", "F", "UP", "B", "I", "PGH", "PL", "RUF"] line-length = 100 -ignore = ["PLR2004", "PLR0913", "PLR0912", "PLW2901", "PLR0915", "RUF013"] +ignore = ["PLR2004", "PLR0913", "PLR0912", "PLW2901", "PLR0915", "RUF013", "E741"] extend-exclude = ["doc/*", "doc/*/*"] [tool.pytest.ini_options] diff --git a/tests/test_angular_momentum.py b/tests/test_angular_momentum.py index c36a2b28..0ebcf476 100644 --- a/tests/test_angular_momentum.py +++ b/tests/test_angular_momentum.py @@ -1,14 +1,15 @@ """Test gbasis.integrals.angular_momentum.""" +import numpy as np +import pytest +from utils import find_datafile + from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._diff_operator_int import ( _compute_differential_operator_integrals_intermediate, ) from gbasis.integrals._moment_int import _compute_multipole_moment_integrals_intermediate -from gbasis.integrals.angular_momentum import angular_momentum_integral, AngularMomentumIntegral +from gbasis.integrals.angular_momentum import AngularMomentumIntegral, angular_momentum_integral from gbasis.parsers import make_contractions, parse_nwchem -import numpy as np -import pytest -from utils import find_datafile def test_angular_momentum_construct_array_contraction(): diff --git a/tests/test_base.py b/tests/test_base.py index cb4d5497..e43854c5 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -1,14 +1,15 @@ """Test gbasis.base.BaseGuassianRelatedArray.""" -from gbasis.base import BaseGaussianRelatedArray -from gbasis.contractions import GeneralizedContractionShell import numpy as np import pytest from utils import disable_abstract, skip_init +from gbasis.base import BaseGaussianRelatedArray +from gbasis.contractions import GeneralizedContractionShell + def test_init(): """Test base.BaseGaussianRelatedArray.""" - Test = disable_abstract(BaseGaussianRelatedArray) # noqa: N806 + Test = disable_abstract(BaseGaussianRelatedArray) test = skip_init(Test) contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" @@ -34,7 +35,7 @@ def test_init(): def test_contruct_array_contraction(): """Test base.BaseGaussianRelatedArray.construct_array_contraction.""" # enable only the abstract method construct_array_contraction - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseGaussianRelatedArray, dict_overwrite={ "construct_array_contraction": BaseGaussianRelatedArray.construct_array_contraction @@ -50,7 +51,7 @@ def test_contruct_array_contraction(): def test_contruct_array_cartesian(): """Test base.BaseGaussianRelatedArray.construct_array_cartesian.""" # enable only the abstract method construct_array_cartesian - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseGaussianRelatedArray, dict_overwrite={ "construct_array_cartesian": BaseGaussianRelatedArray.construct_array_cartesian @@ -66,7 +67,7 @@ def test_contruct_array_cartesian(): def test_contruct_array_spherical(): """Test base.BaseGaussianRelatedArray.construct_array_spherical.""" # enable only the abstract method construct_array_spherical - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseGaussianRelatedArray, dict_overwrite={ "construct_array_spherical": BaseGaussianRelatedArray.construct_array_spherical @@ -82,7 +83,7 @@ def test_contruct_array_spherical(): def test_contruct_array_lincomb(): """Test base.BaseGaussianRelatedArray.construct_array_lincomb.""" # enable only the abstract method construct_array_lincomb - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseGaussianRelatedArray, dict_overwrite={ "construct_array_lincomb": BaseGaussianRelatedArray.construct_array_lincomb diff --git a/tests/test_base_four_symm.py b/tests/test_base_four_symm.py index 374c6155..f3be6f3d 100644 --- a/tests/test_base_four_symm.py +++ b/tests/test_base_four_symm.py @@ -1,15 +1,16 @@ """Test gbasis.base_four_symmetric.""" -from gbasis.base_four_symm import BaseFourIndexSymmetric -from gbasis.contractions import GeneralizedContractionShell -from gbasis.spherical import generate_transformation import numpy as np import pytest from utils import disable_abstract, skip_init +from gbasis.base_four_symm import BaseFourIndexSymmetric +from gbasis.contractions import GeneralizedContractionShell +from gbasis.spherical import generate_transformation + def test_init(): """Test BaseFourIndexSymmetric.__init__.""" - Test = disable_abstract(BaseFourIndexSymmetric) # noqa: N806 + Test = disable_abstract(BaseFourIndexSymmetric) test = skip_init(Test) contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" @@ -22,7 +23,7 @@ def test_init(): def test_contractions(): """Test BaseFourIndexSymmetric.contractions.""" - Test = disable_abstract(BaseFourIndexSymmetric) # noqa: N806 + Test = disable_abstract(BaseFourIndexSymmetric) cont = GeneralizedContractionShell(1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical") test = Test([cont]) assert test.contractions[0] == cont @@ -31,7 +32,7 @@ def test_contractions(): def test_construct_array_contraction(): """Test BaseFourIndexSymmetric.construct_array_contraction.""" # enable only the abstract method construct_array_contraction - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": BaseFourIndexSymmetric.construct_array_contraction @@ -52,7 +53,8 @@ def test_construct_array_cartesian(): cont_two = GeneralizedContractionShell( 2, np.array([2, 3, 4]), np.ones((1, 1)), 2 * np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont1, cont2, cont3, cont4: np.ones( @@ -111,7 +113,7 @@ def test_construct_array_spherical(): array += np.einsum("ijkl->jikl", array) array += np.einsum("ijkl->ijlk", array) array += np.einsum("ijkl->klij", array) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -150,7 +152,7 @@ def test_construct_array_spherical(): 2, cont_two.angmom_components_cart, cont_two.angmom_components_sph, "left" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, cont_three, cont_four: ( @@ -418,7 +420,7 @@ def test_construct_array_mix(): 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -446,7 +448,7 @@ def test_construct_array_mix(): 2, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, cont_three, cont_four: ( @@ -479,7 +481,7 @@ def test_construct_array_mix(): test.construct_array_cartesian(), test.construct_array_mix(["cartesian"] * 2) ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, cont_three, cont_four: ( @@ -582,7 +584,7 @@ def construct_array_cont(self, cont_one, cont_two, cont_three, cont_four): ) return output * coeff_dict[identifier] - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={"construct_array_contraction": construct_array_cont}, ) @@ -688,7 +690,7 @@ def test_construct_array_lincomb(): ) orb_transform = np.random.rand(3, 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -735,7 +737,7 @@ def test_construct_array_lincomb(): with pytest.raises(TypeError): test.construct_array_lincomb(orb_transform, "bad", keyword=3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, cont_three, cont_four: ( @@ -1281,7 +1283,7 @@ def angmom_components_sph(self): raise NotImplementedError contractions = SpecialShell(1, np.array([1, 2, 3]), np.ones((1, 2)), np.ones(1), "spherical") - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseFourIndexSymmetric, dict_overwrite={ "construct_array_contraction": ( diff --git a/tests/test_base_one.py b/tests/test_base_one.py index dd2975f1..c40af30c 100644 --- a/tests/test_base_one.py +++ b/tests/test_base_one.py @@ -1,15 +1,16 @@ """Test gbasis.base_one.""" -from gbasis.base_one import BaseOneIndex -from gbasis.contractions import GeneralizedContractionShell -from gbasis.spherical import generate_transformation import numpy as np import pytest from utils import disable_abstract, skip_init +from gbasis.base_one import BaseOneIndex +from gbasis.contractions import GeneralizedContractionShell +from gbasis.spherical import generate_transformation + def test_init(): """Test BaseOneIndex.__init__.""" - Test = disable_abstract(BaseOneIndex) # noqa: N806 + Test = disable_abstract(BaseOneIndex) test = skip_init(Test) contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" @@ -22,7 +23,7 @@ def test_init(): def test_contractions(): """Test BaseOneIndex.constractions.""" - Test = disable_abstract(BaseOneIndex) # noqa: N806 + Test = disable_abstract(BaseOneIndex) contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) @@ -33,7 +34,7 @@ def test_contractions(): def test_contruct_array_contraction(): """Test BaseOneIndex.construct_array_contraction.""" # enable only the abstract method construct_array_contraction - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={"construct_array_contraction": BaseOneIndex.construct_array_contraction}, ) @@ -50,7 +51,7 @@ def test_contruct_array_cartesian(): 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) contractions.norm_cont = np.ones((1, 5)) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={"construct_array_contraction": lambda self, cont, a=2: np.ones((1, 5)) * a}, ) @@ -64,7 +65,7 @@ def test_contruct_array_cartesian(): assert np.allclose(test.construct_array_cartesian(), np.ones(10) * 2) assert np.allclose(test.construct_array_cartesian(a=3), np.ones(10) * 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={"construct_array_contraction": lambda self, cont, a=2: np.ones((2, 5)) * a}, ) @@ -73,7 +74,7 @@ def test_contruct_array_cartesian(): assert np.allclose(test.construct_array_cartesian(), np.ones(20) * 2) assert np.allclose(test.construct_array_cartesian(a=3), np.ones(20) * 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={ "construct_array_contraction": lambda self, cont, a=2: np.ones((2, 5, 4)) * a @@ -93,7 +94,7 @@ def test_contruct_array_spherical(): 1, contractions.angmom_components_cart, contractions.angmom_components_sph, "left" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={ "construct_array_contraction": lambda self, cont, a=2: np.arange( @@ -121,7 +122,7 @@ def test_contruct_array_spherical(): contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones((1, 2)), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={ "construct_array_contraction": ( @@ -171,7 +172,7 @@ def test_contruct_array_mix(): 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={ "construct_array_contraction": lambda self, cont, a=2: np.arange( @@ -207,7 +208,7 @@ def test_contruct_array_mix(): contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones((1, 2)), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={ "construct_array_contraction": ( @@ -260,7 +261,7 @@ def angmom_components_sph(self): raise NotImplementedError contractions = SpecialShell(1, np.array([1, 2, 3]), np.ones((1, 2)), np.ones(1), "spherical") - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={ "construct_array_contraction": ( @@ -284,7 +285,7 @@ def test_contruct_array_lincomb(): ) orb_transform = np.random.rand(3, 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseOneIndex, dict_overwrite={ "construct_array_contraction": lambda self, cont, a=2: np.arange( diff --git a/tests/test_base_two_asymm.py b/tests/test_base_two_asymm.py index 4b609c00..d30fb9b5 100644 --- a/tests/test_base_two_asymm.py +++ b/tests/test_base_two_asymm.py @@ -1,15 +1,16 @@ """Test gbasis.base_two_asymm.""" -from gbasis.base_two_asymm import BaseTwoIndexAsymmetric -from gbasis.contractions import GeneralizedContractionShell -from gbasis.spherical import generate_transformation import numpy as np import pytest from utils import disable_abstract, skip_init +from gbasis.base_two_asymm import BaseTwoIndexAsymmetric +from gbasis.contractions import GeneralizedContractionShell +from gbasis.spherical import generate_transformation + def test_init(): """Test BaseTwoIndexAsymmetric.__init__.""" - Test = disable_abstract(BaseTwoIndexAsymmetric) # noqa: N806 + Test = disable_abstract(BaseTwoIndexAsymmetric) test = skip_init(Test) contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" @@ -24,7 +25,7 @@ def test_init(): def test_contractions_one(): """Test BaseTwoIndexAsymmetric.constractions_one.""" - Test = disable_abstract(BaseTwoIndexAsymmetric) # noqa: N806 + Test = disable_abstract(BaseTwoIndexAsymmetric) cont_one = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) @@ -37,7 +38,7 @@ def test_contractions_one(): def test_contractions_two(): """Test BaseTwoIndexAsymmetric.constractions_two.""" - Test = disable_abstract(BaseTwoIndexAsymmetric) # noqa: N806 + Test = disable_abstract(BaseTwoIndexAsymmetric) cont_one = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) @@ -51,7 +52,7 @@ def test_contractions_two(): def test_contruct_array_contraction(): """Test BaseTwoIndexAsymmetric.construct_array_contraction.""" # enable only the abstract method construct_array_contraction - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": BaseTwoIndexAsymmetric.construct_array_contraction @@ -69,7 +70,7 @@ def test_contruct_array_cartesian(): contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont1, cont2, a=2: np.ones((1, 2, 1, 2)) * a @@ -86,7 +87,7 @@ def test_contruct_array_cartesian(): assert np.allclose(test.construct_array_cartesian(), np.ones((4, 2)) * 2) assert np.allclose(test.construct_array_cartesian(a=3), np.ones((4, 2)) * 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -106,7 +107,7 @@ def test_contruct_array_cartesian(): assert np.allclose(test.construct_array_cartesian(), np.ones((4, 5)) * 2) assert np.allclose(test.construct_array_cartesian(a=3), np.ones((4, 5)) * 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -130,7 +131,7 @@ def test_contruct_array_spherical(): 1, contractions.angmom_components_cart, contractions.angmom_components_sph, "left" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -160,7 +161,7 @@ def test_contruct_array_spherical(): ) matrix = np.arange(36, dtype=float).reshape(2, 3, 2, 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, a=2: matrix * a @@ -218,7 +219,7 @@ def test_contruct_array_mix(): 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -261,7 +262,7 @@ def test_contruct_array_mix(): ) matrix = np.arange(36, dtype=float).reshape(2, 3, 2, 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, a=2: matrix * a @@ -365,7 +366,7 @@ def construct_array_cont(self, cont_one, cont_two): ) return output - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={"construct_array_contraction": construct_array_cont}, ) @@ -428,7 +429,7 @@ def test_contruct_array_lincomb(): orb_transform_one = np.random.rand(3, 3) orb_transform_two = np.random.rand(3, 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -585,7 +586,7 @@ def angmom_components_sph(self): raise NotImplementedError contractions = SpecialShell(1, np.array([1, 2, 3]), np.ones((1, 2)), np.ones(1), "spherical") - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={ "construct_array_contraction": ( diff --git a/tests/test_base_two_symm.py b/tests/test_base_two_symm.py index ac6be7a3..5fec61f6 100644 --- a/tests/test_base_two_symm.py +++ b/tests/test_base_two_symm.py @@ -1,16 +1,17 @@ """Test gbasis.base_two_symm.""" +import numpy as np +import pytest +from utils import disable_abstract, skip_init + from gbasis.base_two_asymm import BaseTwoIndexAsymmetric from gbasis.base_two_symm import BaseTwoIndexSymmetric from gbasis.contractions import GeneralizedContractionShell from gbasis.spherical import generate_transformation -import numpy as np -import pytest -from utils import disable_abstract, skip_init def test_init(): """Test BaseTwoIndexSymmetric.__init__.""" - Test = disable_abstract(BaseTwoIndexSymmetric) # noqa: N806 + Test = disable_abstract(BaseTwoIndexSymmetric) test = skip_init(Test) contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" @@ -23,7 +24,7 @@ def test_init(): def test_contractions(): """Test BaseTwoIndexSymmetric.constractions.""" - Test = disable_abstract(BaseTwoIndexSymmetric) # noqa: N806 + Test = disable_abstract(BaseTwoIndexSymmetric) cont = GeneralizedContractionShell(1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical") test = Test([cont]) assert test.contractions[0] == cont @@ -32,7 +33,7 @@ def test_contractions(): def test_contruct_array_contraction(): """Test BaseTwoIndexSymmetric.construct_array_contraction.""" # enable only the abstract method construct_array_contraction - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": BaseTwoIndexSymmetric.construct_array_contraction @@ -56,7 +57,7 @@ def test_contruct_array_cartesian(): contractions = GeneralizedContractionShell( 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont1, cont2, a=2: np.ones((1, 2, 1, 2)) * a @@ -79,7 +80,7 @@ def test_contruct_array_cartesian(): cont_two = GeneralizedContractionShell( 2, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, a=2: ( @@ -112,7 +113,7 @@ def test_contruct_array_cartesian(): ), ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, a=2: ( @@ -166,7 +167,7 @@ def test_contruct_array_cartesian(): ), ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ # NOTE: assume that cont_one and cont_two will always be cont_one and cont_two defined @@ -246,7 +247,7 @@ def test_contruct_array_spherical(): 1, contractions.angmom_components_cart, contractions.angmom_components_sph, "left" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -281,7 +282,7 @@ def test_contruct_array_spherical(): 2, cont_two.angmom_components_cart, cont_two.angmom_components_sph, "left" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, a=2: ( @@ -342,7 +343,7 @@ def test_contruct_array_spherical(): ), ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, a=2: ( @@ -420,7 +421,7 @@ def test_contruct_array_mix(): 1, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -446,7 +447,7 @@ def test_contruct_array_mix(): 2, np.array([1, 2, 3]), np.ones(1), np.ones(1), "spherical" ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, a=2: ( @@ -471,7 +472,7 @@ def test_contruct_array_mix(): test.construct_array_cartesian(a=3), test.construct_array_mix(["cartesian"] * 2, a=3) ) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, a=2: ( @@ -519,7 +520,7 @@ def test_contruct_array_lincomb(): ) orb_transform = np.random.rand(3, 3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": ( @@ -561,7 +562,7 @@ def test_contruct_array_lincomb(): with pytest.raises(TypeError): test.construct_array_lincomb(orb_transform, "bad", keyword=3) - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": lambda self, cont_one, cont_two, a=2: ( @@ -757,7 +758,7 @@ def construct_array_cont(self, cont_one, cont_two): ) return output - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={"construct_array_contraction": construct_array_cont}, ) @@ -829,11 +830,11 @@ def construct_array_contraction(self, cont_one, cont_two, a=2): ).astype(float) return output * a - TestSymmetric = disable_abstract( # noqa: N806 + TestSymmetric = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={"construct_array_contraction": construct_array_contraction}, ) - TestAsymmetric = disable_abstract( # noqa: N806 + TestAsymmetric = disable_abstract( BaseTwoIndexAsymmetric, dict_overwrite={"construct_array_contraction": construct_array_contraction}, ) @@ -889,7 +890,7 @@ def angmom_components_sph(self): raise NotImplementedError contractions = SpecialShell(1, np.array([1, 2, 3]), np.ones((1, 2)), np.ones(1), "spherical") - Test = disable_abstract( # noqa: N806 + Test = disable_abstract( BaseTwoIndexSymmetric, dict_overwrite={ "construct_array_contraction": ( diff --git a/tests/test_contractions.py b/tests/test_contractions.py index 5d2448f7..bb57fa89 100644 --- a/tests/test_contractions.py +++ b/tests/test_contractions.py @@ -1,9 +1,10 @@ """Test gbasis.contractions.""" -from gbasis.contractions import GeneralizedContractionShell import numpy as np import pytest from utils import skip_init +from gbasis.contractions import GeneralizedContractionShell + def test_coord_setter(): """Test setter for GeneralizedContractionShell.coord.""" diff --git a/tests/test_density.py b/tests/test_density.py index 0b12eeda..598f07d4 100644 --- a/tests/test_density.py +++ b/tests/test_density.py @@ -1,4 +1,8 @@ """Test gbasis.evals.density.""" +import numpy as np +import pytest +from utils import HortonContractions, find_datafile + from gbasis.evals.density import ( evaluate_density, evaluate_density_gradient, @@ -12,9 +16,6 @@ from gbasis.evals.eval import evaluate_basis from gbasis.evals.eval_deriv import evaluate_deriv_basis from gbasis.parsers import make_contractions, parse_nwchem -import numpy as np -import pytest -from utils import find_datafile, HortonContractions def test_evaluate_density_using_evaluated_orbs(): diff --git a/tests/test_density_direct.py b/tests/test_density_direct.py index a95397b0..ea7640dd 100644 --- a/tests/test_density_direct.py +++ b/tests/test_density_direct.py @@ -1,4 +1,8 @@ """Test gbasis.evals.density.""" +import numpy as np +import pytest +from utils import HortonContractions, find_datafile + from gbasis.evals.density import ( evaluate_density, evaluate_density_gradient, @@ -12,9 +16,6 @@ from gbasis.evals.eval import evaluate_basis from gbasis.evals.eval_deriv import evaluate_deriv_basis from gbasis.parsers import make_contractions, parse_nwchem -import numpy as np -import pytest -from utils import find_datafile, HortonContractions def test_evaluate_density_using_evaluated_orbs(): diff --git a/tests/test_deriv.py b/tests/test_deriv.py index 0d725fd7..a06936fd 100644 --- a/tests/test_deriv.py +++ b/tests/test_deriv.py @@ -1,10 +1,11 @@ """Test gbasis.evals._deriv.""" import itertools as it -from gbasis.evals._deriv import _eval_deriv_contractions import numpy as np from utils import partial_deriv_finite_diff +from gbasis.evals._deriv import _eval_deriv_contractions + def evaluate_deriv_prim(coord, orders, center, angmom_comps, alpha): """Return the evaluation of the derivative of a Gaussian primitive. @@ -118,7 +119,9 @@ def test_evaluate_deriv_prim(): np.array([2, 3, 4]), orders, np.array([0.5, 1, 1.5]), np.array([x, y, z]), 1 ), partial_deriv_finite_diff( - lambda xyz: evaluate_prim(xyz, np.array([0.5, 1, 1.5]), np.array([x, y, z]), 1), + lambda xyz, x=x, y=y, z=z: evaluate_prim( + xyz, np.array([0.5, 1, 1.5]), np.array([x, y, z]), 1 + ), np.array([2, 3, 4]), orders, ), @@ -134,7 +137,9 @@ def test_evaluate_deriv_prim(): np.array([2, 3, 4]), orders, np.array([0.5, 1, 1.5]), np.array([x, y, z]), 1 ), partial_deriv_finite_diff( - lambda xyz: evaluate_prim(xyz, np.array([0.5, 1, 1.5]), np.array([x, y, z]), 1), + lambda xyz, x=x, y=y, z=z: evaluate_prim( + xyz, np.array([0.5, 1, 1.5]), np.array([x, y, z]), 1 + ), np.array([2, 3, 4]), orders, epsilon=1e-5, diff --git a/tests/test_diff_operator_int.py b/tests/test_diff_operator_int.py index c5a40c56..39fa7327 100644 --- a/tests/test_diff_operator_int.py +++ b/tests/test_diff_operator_int.py @@ -1,11 +1,12 @@ """Test gbasis.integrals._diff_operator_int.""" import itertools as it -from gbasis.integrals._diff_operator_int import _compute_differential_operator_integrals import numpy as np -from scipy.special import factorial2 from test_moment_int import answer_prim as answer_prim_overlap +from gbasis.integrals._diff_operator_int import _compute_differential_operator_integrals +from gbasis.utils import factorial2 + def answer_prim(coord_type, i, j, k): """Return the answer to the multipole moment integral tests. @@ -296,6 +297,7 @@ def test_compute_differential_operator_integrals_multiarray(): ), axis=1, ) + test = _compute_differential_operator_integrals( orders_diff, coord_a, @@ -310,19 +312,22 @@ def test_compute_differential_operator_integrals_multiarray(): norm_b, ) assert test.shape == (orders_diff.shape[0], 1, angmoms_a.shape[0], 1, angmoms_b.shape[0]) - for i, order_diff in enumerate(orders_diff): + for i, single_order in enumerate(orders_diff): for j, angmom_a in enumerate(angmoms_a): for k, angmom_b in enumerate(angmoms_b): - _compute_differential_operator_integrals( - np.array([order_diff]), - coord_a, - np.array([angmom_a]), - exps_a, - coeffs_a, - norm_a, - coord_b, - np.array([angmom_b]), - exps_b, - coeffs_b, - norm_b, - ) == test[i, 0, j, 0, k] + assert np.allclose( + _compute_differential_operator_integrals( + np.array([single_order]), + coord_a, + np.array([angmom_a]), + exps_a, + coeffs_a, + norm_a, + coord_b, + np.array([angmom_b]), + exps_b, + coeffs_b, + norm_b, + )[0, 0, j, 0, k], + test[i, 0, j, 0, k], + ) diff --git a/tests/test_electron_repulsion.py b/tests/test_electron_repulsion.py index 0746b1db..91a25bed 100644 --- a/tests/test_electron_repulsion.py +++ b/tests/test_electron_repulsion.py @@ -1,17 +1,18 @@ """Test gbasis.integrals.electron_repulsion.""" +import numpy as np +import pytest +from utils import HortonContractions, find_datafile + from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._two_elec_int import ( _compute_two_elec_integrals, _compute_two_elec_integrals_angmom_zero, ) from gbasis.integrals.electron_repulsion import ( - electron_repulsion_integral, ElectronRepulsionIntegral, + electron_repulsion_integral, ) from gbasis.parsers import make_contractions, parse_nwchem -import numpy as np -import pytest -from utils import find_datafile, HortonContractions def test_construct_array_contraction(): diff --git a/tests/test_electrostatic_potential.py b/tests/test_electrostatic_potential.py index 520349c8..831a8dbf 100644 --- a/tests/test_electrostatic_potential.py +++ b/tests/test_electrostatic_potential.py @@ -1,9 +1,10 @@ """Tests for gbasis.evals.electrostatic_potential.""" -from gbasis.evals.electrostatic_potential import electrostatic_potential -from gbasis.parsers import make_contractions, parse_nwchem import numpy as np import pytest -from utils import find_datafile, HortonContractions +from utils import HortonContractions, find_datafile + +from gbasis.evals.electrostatic_potential import electrostatic_potential +from gbasis.parsers import make_contractions, parse_nwchem def test_electrostatic_potential(): diff --git a/tests/test_eval.py b/tests/test_eval.py index 2bcb3a88..bbc07120 100644 --- a/tests/test_eval.py +++ b/tests/test_eval.py @@ -1,12 +1,13 @@ """Test gbasis.evals.eval.""" +import numpy as np +import pytest +from utils import HortonContractions, find_datafile + from gbasis.contractions import GeneralizedContractionShell from gbasis.evals._deriv import _eval_deriv_contractions from gbasis.evals.eval import Eval, evaluate_basis from gbasis.parsers import make_contractions, parse_nwchem from gbasis.utils import factorial2 -import numpy as np -import pytest -from utils import find_datafile, HortonContractions def test_evaluate_construct_array_contraction(): @@ -175,6 +176,7 @@ def test_evaluate_basis_pyscf(): pytest.importorskip("pyscf") from pyscf import gto + from gbasis.wrappers import from_pyscf # build Cartesian basis (default is cart=False) @@ -223,6 +225,7 @@ def test_evaluate_basis_pyscf_cart_norm(): pytest.importorskip("pyscf") from pyscf import gto + from gbasis.wrappers import from_pyscf mol = gto.Mole() diff --git a/tests/test_eval_deriv.py b/tests/test_eval_deriv.py index 4f318170..f5701b60 100644 --- a/tests/test_eval_deriv.py +++ b/tests/test_eval_deriv.py @@ -1,14 +1,15 @@ """Test gbasis.evals.evaluate_deriv.""" import itertools as it +import numpy as np +import pytest +from utils import find_datafile + from gbasis.contractions import GeneralizedContractionShell from gbasis.evals._deriv import _eval_deriv_contractions from gbasis.evals.eval_deriv import EvalDeriv, evaluate_deriv_basis from gbasis.parsers import make_contractions, parse_nwchem from gbasis.utils import factorial2 -import numpy as np -import pytest -from utils import find_datafile def test_evaluate_deriv_construct_array_contraction(): diff --git a/tests/test_kinetic_energy.py b/tests/test_kinetic_energy.py index 9cd90289..40e360ef 100644 --- a/tests/test_kinetic_energy.py +++ b/tests/test_kinetic_energy.py @@ -1,12 +1,13 @@ """Test gbasis.integrals.kinetic_energy.""" +import numpy as np +import pytest +from utils import HortonContractions, find_datafile + from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._diff_operator_int import _compute_differential_operator_integrals -from gbasis.integrals.kinetic_energy import kinetic_energy_integral, KineticEnergyIntegral +from gbasis.integrals.kinetic_energy import KineticEnergyIntegral, kinetic_energy_integral from gbasis.parsers import make_contractions, parse_nwchem from gbasis.utils import factorial2 -import numpy as np -import pytest -from utils import find_datafile, HortonContractions def test_kinetic_energy_construct_array_contraction(): @@ -205,7 +206,7 @@ def test_kinetic_energy_integral_lincomb(): def test_kinetic_energy_integral_horton_anorcc_hhe(): - """Test gbasis.integrals.kinetic_energy.kinetic_energy_integral_cartesian against HORTON's results. + """Test gbasis.integrals.kinetic_energy.kinetic_energy_integral_cartesian against HORTON. The test case is diatomic with H and He separated by 0.8 angstroms with basis set ANO-RCC. @@ -227,7 +228,7 @@ def test_kinetic_energy_integral_horton_anorcc_hhe(): def test_kinetic_energy_integral_horton_anorcc_bec(): - """Test gbasis.integrals.kinetic_energy.kinetic_energy_integral_cartesian against HORTON's results. + """Test gbasis.integrals.kinetic_energy.kinetic_energy_integral_cartesian against HORTON. The test case is diatomic with Be and C separated by 1.0 angstroms with basis set ANO-RCC. diff --git a/tests/test_moment.py b/tests/test_moment.py index accd1306..7733d32d 100644 --- a/tests/test_moment.py +++ b/tests/test_moment.py @@ -1,12 +1,13 @@ """Test gbasis.integrals.moment.""" +import numpy as np +import pytest +from utils import find_datafile + from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._moment_int import _compute_multipole_moment_integrals from gbasis.integrals.moment import Moment, moment_integral from gbasis.parsers import make_contractions, parse_nwchem from gbasis.utils import factorial2 -import numpy as np -import pytest -from utils import find_datafile def test_moment_construct_array_contraction(): diff --git a/tests/test_moment_int.py b/tests/test_moment_int.py index 13b1348b..5fafdced 100644 --- a/tests/test_moment_int.py +++ b/tests/test_moment_int.py @@ -1,9 +1,10 @@ """Test gbasis.integrals._moment_int.""" import itertools as it +import numpy as np + from gbasis.integrals._moment_int import _compute_multipole_moment_integrals from gbasis.utils import factorial2 -import numpy as np def answer_prim(coord_type, i, j, k): @@ -798,20 +799,23 @@ def test_compute_multipole_moment_integrals_multiarray(): for i, order_moment in enumerate(orders_moment): for j, angmom_a in enumerate(angmoms_a): for k, angmom_b in enumerate(angmoms_b): - _compute_multipole_moment_integrals( - coord_moment, - np.array([order_moment]), - coord_a, - np.array([angmom_a]), - exps_a, - coeffs_a, - norm_a, - coord_b, - np.array([angmom_b]), - exps_b, - coeffs_b, - norm_b, - ) == test[i, 0, j, 0, k] + assert np.allclose( + _compute_multipole_moment_integrals( + coord_moment, + np.array([order_moment]), + coord_a, + np.array([angmom_a]), + exps_a, + coeffs_a, + norm_a, + coord_b, + np.array([angmom_b]), + exps_b, + coeffs_b, + norm_b, + )[0, 0, j, 0, k], + test[i, 0, j, 0, k], + ) def test_compute_multipole_moment_integrals_generalized_contraction(): diff --git a/tests/test_momentum.py b/tests/test_momentum.py index fbb655d9..b9259f5e 100644 --- a/tests/test_momentum.py +++ b/tests/test_momentum.py @@ -1,12 +1,13 @@ """Test gbasis.integrals.momentum.""" +import numpy as np +import pytest +from utils import find_datafile + from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._diff_operator_int import _compute_differential_operator_integrals -from gbasis.integrals.momentum import momentum_integral, MomentumIntegral +from gbasis.integrals.momentum import MomentumIntegral, momentum_integral from gbasis.parsers import make_contractions, parse_nwchem from gbasis.utils import factorial2 -import numpy as np -import pytest -from utils import find_datafile def test_momentum_construct_array_contraction(): diff --git a/tests/test_nuclear_electron_attraction.py b/tests/test_nuclear_electron_attraction.py index 0e67871b..d6c68085 100644 --- a/tests/test_nuclear_electron_attraction.py +++ b/tests/test_nuclear_electron_attraction.py @@ -1,9 +1,10 @@ """Test gbasis.integrals.nuclear_electron_attraction.""" +import numpy as np +from utils import HortonContractions, find_datafile + from gbasis.integrals.nuclear_electron_attraction import nuclear_electron_attraction_integral from gbasis.integrals.point_charge import point_charge_integral from gbasis.parsers import make_contractions, parse_nwchem -import numpy as np -from utils import find_datafile, HortonContractions def test_nuclear_electron_attraction_horton_anorcc_hhe(): diff --git a/tests/test_one_elec_int.py b/tests/test_one_elec_int.py index ea6d9bfa..82a8cf23 100644 --- a/tests/test_one_elec_int.py +++ b/tests/test_one_elec_int.py @@ -1,10 +1,11 @@ """Test gbasis.integrals._one_elec_int.""" -from gbasis.contractions import GeneralizedContractionShell -from gbasis.integrals._one_elec_int import _compute_one_elec_integrals import numpy as np import pytest from scipy.special import hyp1f1 +from gbasis.contractions import GeneralizedContractionShell +from gbasis.integrals._one_elec_int import _compute_one_elec_integrals + def boys_func(order, weighted_dist): r"""Boys function for evaluating the one-electron Coulomb interaction integral. diff --git a/tests/test_overlap.py b/tests/test_overlap.py index 5d25989b..ddc8ffcd 100644 --- a/tests/test_overlap.py +++ b/tests/test_overlap.py @@ -1,13 +1,13 @@ """Test gbasis.integrals.overlap.""" +import numpy as np +import pytest +from utils import HortonContractions, find_datafile + from gbasis.contractions import GeneralizedContractionShell from gbasis.integrals._moment_int import _compute_multipole_moment_integrals from gbasis.integrals.overlap import Overlap, overlap_integral from gbasis.parsers import make_contractions, parse_gbs, parse_nwchem from gbasis.utils import factorial2 -import numpy as np -import pytest - -from utils import find_datafile, HortonContractions def test_overlap_construct_array_contraction(): diff --git a/tests/test_overlap_asymm.py b/tests/test_overlap_asymm.py index edeb43bf..28410609 100644 --- a/tests/test_overlap_asymm.py +++ b/tests/test_overlap_asymm.py @@ -1,13 +1,14 @@ """Test gbasis.integrals.overlap_asymm.""" +import numpy as np +from utils import HortonContractions, find_datafile + from gbasis.integrals.overlap import overlap_integral from gbasis.integrals.overlap_asymm import overlap_integral_asymmetric from gbasis.parsers import make_contractions, parse_nwchem -import numpy as np -from utils import find_datafile, HortonContractions def test_overlap_integral_asymmetric_horton_anorcc_hhe(): - """Test gbasis.integrals.overlap_asymm.overlap_integral_asymmetric against HORTON's overlap matrix. + """Test gbasis.integrals.overlap_asymm.overlap_integral_asymmetric against HORTON overlap mat. The test case is diatomic with H and He separated by 0.8 angstroms with basis set ANO-RCC. diff --git a/tests/test_parsers.py b/tests/test_parsers.py index 5a42726f..f699c4a9 100644 --- a/tests/test_parsers.py +++ b/tests/test_parsers.py @@ -1,9 +1,10 @@ """Test gbasis.parsers.""" -from gbasis.parsers import make_contractions, parse_gbs, parse_nwchem import numpy as np import pytest from utils import find_datafile +from gbasis.parsers import make_contractions, parse_gbs, parse_nwchem + def test_parse_nwchem_sto6g(): """Test gbasis.parsers.parse_nwchem for sto6g.""" @@ -762,7 +763,7 @@ def test_make_contractions(): """Test gbasis.contractions.make_contractions.""" basis_dict = parse_nwchem(find_datafile("data_sto6g.nwchem")) with pytest.raises(TypeError): - make_contractions(basis_dict, {"H", "H"}, np.array([[0, 0, 0], [1, 1, 1]]), "spherical") + make_contractions(basis_dict, {"H", "C"}, np.array([[0, 0, 0], [1, 1, 1]]), "spherical") with pytest.raises(TypeError): make_contractions(basis_dict, [0, 0], np.array([[0, 0, 0], [1, 1, 1]]), "spherical") diff --git a/tests/test_point_charge.py b/tests/test_point_charge.py index 0b4fd6a7..4870bd23 100644 --- a/tests/test_point_charge.py +++ b/tests/test_point_charge.py @@ -1,12 +1,13 @@ """Test gbasis.integrals.point_charge.""" -from gbasis.contractions import GeneralizedContractionShell -from gbasis.integrals.point_charge import point_charge_integral, PointChargeIntegral -from gbasis.parsers import make_contractions, parse_nwchem import numpy as np import pytest from scipy.special import factorial from utils import find_datafile +from gbasis.contractions import GeneralizedContractionShell +from gbasis.integrals.point_charge import PointChargeIntegral, point_charge_integral +from gbasis.parsers import make_contractions, parse_nwchem + def boys_helgaker(n, x): """Return the Boys function as written in Helgaker, eq. 9.8.39. diff --git a/tests/test_spherical.py b/tests/test_spherical.py index d6d23ad4..936611ba 100644 --- a/tests/test_spherical.py +++ b/tests/test_spherical.py @@ -1,6 +1,9 @@ """Test gbasis.spherical.""" import itertools as it +import numpy as np +import pytest + from gbasis.spherical import ( expansion_coeff, generate_transformation, @@ -8,8 +11,6 @@ real_solid_harmonic, shift_factor, ) -import numpy as np -import pytest def test_shift_factor(): diff --git a/tests/test_stress_tensor.py b/tests/test_stress_tensor.py index a9ef3f56..a53eed90 100644 --- a/tests/test_stress_tensor.py +++ b/tests/test_stress_tensor.py @@ -1,4 +1,8 @@ """Test gbasis.evals.stress_tensor.""" +import numpy as np +import pytest +from utils import HortonContractions, find_datafile + from gbasis.evals.density import ( evaluate_density_laplacian, evaluate_deriv_density, @@ -10,9 +14,6 @@ evaluate_stress_tensor, ) from gbasis.parsers import make_contractions, parse_nwchem -import numpy as np -import pytest -from utils import find_datafile, HortonContractions def test_evaluate_stress_tensor(): diff --git a/tests/test_two_elec_int.py b/tests/test_two_elec_int.py index 8d98617a..df15e433 100644 --- a/tests/test_two_elec_int.py +++ b/tests/test_two_elec_int.py @@ -1,12 +1,13 @@ """Test gbasis.integrals._two_elec_int.""" +import numpy as np +import pytest +from scipy.special import hyp1f1 # pylint: disable=E0611 + from gbasis.integrals._two_elec_int import ( _compute_two_elec_integrals, _compute_two_elec_integrals_angmom_zero, ) from gbasis.utils import factorial2 -import numpy as np -import pytest -from scipy.special import hyp1f1 # pylint: disable=E0611 def boys_func(order, weighted_dist): @@ -46,6 +47,7 @@ def boys_func(order, weighted_dist): return hyp1f1(order + 1 / 2, order + 3 / 2, -weighted_dist) / (2 * order + 1) +# ruff: noqa: PLR0911 def two_int_brute( i_0, i_1, diff --git a/tests/test_wrappers.py b/tests/test_wrappers.py index 81528688..3f00f40b 100644 --- a/tests/test_wrappers.py +++ b/tests/test_wrappers.py @@ -1,11 +1,12 @@ """Test gbasis.wrapper.""" -from gbasis.contractions import GeneralizedContractionShell -from gbasis.parsers import make_contractions, parse_nwchem -from gbasis.wrappers import from_iodata, from_pyscf import numpy as np import pytest from utils import find_datafile +from gbasis.contractions import GeneralizedContractionShell +from gbasis.parsers import make_contractions, parse_nwchem +from gbasis.wrappers import from_iodata, from_pyscf + def test_from_iodata(): """Test gbasis.wrapper.from_iodata.""" @@ -107,7 +108,7 @@ def test_from_iodata(): with pytest.raises(ValueError): basis[2].angmom = 10 - basis[2].angmom_components_sph + _ = basis[2].angmom_components_sph with pytest.raises(ValueError): mol.obasis.primitive_normalization = "L1" diff --git a/tests/utils.py b/tests/utils.py index 7ae48318..bf90200a 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -2,9 +2,10 @@ import itertools as it import os -from gbasis.contractions import GeneralizedContractionShell import numpy as np +from gbasis.contractions import GeneralizedContractionShell + def skip_init(class_obj): """Return instance of the given class without initialization. @@ -28,11 +29,12 @@ def __init__(self): """Null initialization.""" pass - NoInitClass.__name__ = "NoInit{}".format(class_obj.__name__) + NoInitClass.__name__ = f"NoInit{class_obj.__name__}" NoInitClass.__doc__ = NoInitClass.__doc__.format(class_obj.__name__) return NoInitClass() +# ruff: noqa: B006 def disable_abstract(abclass, dict_overwrite={}): """Return a class that is a copy of the given abstract class without its abstract methods. @@ -61,9 +63,7 @@ def disable_abstract(abclass, dict_overwrite={}): # replace namespace new_dict.update(dict_overwrite) # make subclass of the abstract class with - return type( - "{} class with abstract methods disabled".format(abclass.__name__), (abclass,), new_dict - ) + return type(f"{abclass.__name__} class with abstract methods disabled", (abclass,), new_dict) def partial_deriv_finite_diff(func, x, order, epsilon=1e-8, num_points=1): @@ -189,8 +189,8 @@ def angmom_components_sph(self): """Ordering of the magnetic quantum number for HORTON's convention.""" if self.angmom == 1: return ("c1", "s1", "c0") - cosines = ["c{}".format(m) for m in range(1, self.angmom + 1)] - sines = ["s{}".format(m) for m in range(1, self.angmom + 1)] + cosines = [f"c{m}" for m in range(1, self.angmom + 1)] + sines = [f"s{m}" for m in range(1, self.angmom + 1)] output = ["c0"] + [None for _ in range(2 * self.angmom)] output[1::2] = cosines output[2::2] = sines