Så denna funktion kan producera en hel del fel, och vissa av dem (fall 5) är så svårt att förstå att jag känner att en genomsnittlig utvecklare kommer att förlora mer tid genom denna funktion än han kommer att vinna.