Does hairping NAT works from target to itself?

I have a setup with hairpin, and for simplicity I want to be able to test from the destination machine itself.

I have

  router                   public ip<--------------------target ip                 target
                           router ip-------------------->target ip
                           router ip<--------------------target ip
                           public ip-------------------->target ip

It is not working and my head is spinning when I try to figure out if it is because I have a mistake somewhere or it is not possible to have hairpin for the target itself…

Hairpin NAT is for connections from a subnet via external address and back to same subnet. So yes, that covers your case and should work. Post what exactly you did.