code: def have_equivalent_surfaces(self):
          
  
          # tag the sites as either surface sites or not
          surf_sites_dict = self.get_surface_sites(tag=True)
  
          a = SpacegroupAnalyzer(self)
          symm_structure = a.get_symmetrized_structure()
  
          # ensure each site on one surface has a
          # corresponding equivalent site on the other
          equal_surf_sites = []
          for equ in symm_structure.equivalent_sites:
              # Top and bottom are arbitrary, we will just determine
              # if one site is on one side of the slab or the other
              top, bottom = 0, 0
              for s in equ:
                  if s.is_surf_site:
                      if s.frac_coords[2] > self.center_of_mass[2]:
                          top += 1
                      else:
                          bottom += 1
              # Check to see if the number of equivalent sites
              # on one side of the slab are equal to the other
              equal_surf_sites.append(top == bottom)
  
          return all(equal_surf_sites)
docs: Check if we have same number of equivalent sites on both surfaces.
          This is an alternative to checking Laue symmetry (is_symmetric())
          if we want to ensure both surfaces in the slab are the same