Nie wiem o czym piszesz, ale Twoja ostatnia wersja nie podaje wyniku:
http://ideone.com/xd8ezq
Żeby znaleźć jakiś test którego nie przechodzisz musisz wrzucić kod identyczny z tym co masz (prócz komentarzy i debugowych rzeczy oczywiście).
PS. Myślałeś o skorzystaniu z testów jednostkowych? Niesamowicie by Ci pomogły uniknąć błędów typu "naprawiłem jedno, zepsuło się drugie".