class_docstr: Test AtomicCoordinates.
class_docstr_tok: ["Test","AtomicCoordinates","."]
docstr: Test building a neighbor list with periodic boundary conditions.
docstr_tok: ["Test","building","a","neighbor","list","with","periodic","boundary","conditions","."]
code: def test_neighbor_list_periodic(self):
      """Test building a neighbor list with periodic boundary conditions."""
      cutoff = 4.0
      box_size = np.array([10.0, 8.0, 9.0])
      N = self.mol.GetNumAtoms()
      coords = self.get_angstrom_coords(self.mol)
      featurizer = NeighborListAtomicCoordinates(
          neighbor_cutoff=cutoff, periodic_box_size=box_size
      )
      neighborlist = featurizer._featurize(self.mol)[1]
      expected_neighbors = [set() for i in range(N)]
      for i in range(N):
          for j in range(i):
              delta = coords[i] - coords[j]
              delta -= np.round(delta / box_size) * box_size
              if np.linalg.norm(delta) < cutoff:
                  expected_neighbors[i].add(j)
                  expected_neighbors[j].add(i)
      for i in range(N):
          assert set(neighborlist[i]) == expected_neighbors[i]
  
file_path: deepchem/deepchem/feat/tests/test_atomic_coordinates.py
imports: import os
  import logging
  import numpy
  import unittest
  from deepchem.utils import conformers
  from deepchem.feat import AtomicCoordinates
  from deepchem.feat import NeighborListAtomicCoordinates
  from deepchem.feat import NeighborListComplexAtomicCoordinates
label_desc: Use image node_id 6 for calling the TestAtomicCoordinates obj's underlying member method code with example usage: obj.test_neighbor_list_periodic() without return types