I use teffects and psmatch2 to check if they produce same results. They do not. Below is the code. What would be the reason for that they produce results that are very different from each other? I checked the matched samples each package produce before they estimate the ATET, and in fact find that the observations matched are quite different across the two packages. How is it possible that the two packages use the same matching method and end up with different matched samples (to estimate the treatment effect)?

use https://www.stata-press.com/data/r16/cattaneo2
teffects nnmatch (bweight mage prenatal1 mmarried fbaby) (mbsmoke), atet nneighbor(1)
psmatch2 mbsmoke, mahalanobis(mage prenatal1 mmarried fbaby) outcome(bweight) neighbor(1) ties